SysCP Apache2 + ProFTPD + mod_sql - Berechtigungen für /var/www/ und uid und gid

  • Hallo,
    ich hoffe ihr könnt mir helfen.

    Mein mit SysCP angelegter FTP Benutzer erhält beim Anlegen eines Ordners in /var/kunden/webs/kunde immer eine "permission denied" Meldung, da die UID und GUID, die in der DB eingetragen sind (hier 10000 und 10000) keinen Schreibzugriff haben.

    Schreibzugriff auf /var/kunden/webs/kunde hat nur www-data:www-data.

    Meine Idee war jetzt, die gid und uid in der MySQL Tabelle ftp_users auf www-data (in diesem Fall 33) zu setzen. Dazu muss ebenfalls noch SQLMinID 33 gesetzt werden, sonst wird der Default-Wert von 65533 genommen.

    Ist das vorgehen korrekt? Ist es ein Sicherheitsrisiko dies so zu machen? Kennt ihr bessere Wege?

    Viele Grüße
    hotzenplotz

  • Ein anderer Weg wäre, den Benutzer 10000 zur Gruppe www-data hinzuzufügen. Probleme damit, den FTP-Zugriff unter dem Benutzer www-data zu machen, sehe ich eigentlich nur dadurch, dass der Schreibzugriff per FTP auf diese Verzeichnisse evtl. nicht gewünscht sein könnte. Zudem lassen sich verschiedene Benutzer auf Dateisystemebene nicht mehr auseinanderhalten. Wenn du einen Ordner hast, in dem eine Datei von user1 und eine von user2 liegt, könnte jeder bisher nur seine Datei bearbeiten (je nach chmod). Wenn FTP-Benutzer unter www-data laufen, kannst du diese Rechteunterscheidung nicht mehr machen.

  • Das dachte ich mir auch, aber da der Benutzer nur virtuell ist, d.h. in /etc/passwd gar nicht erscheint, kann ich ihn ja nicht zu einer Gruppe hinzufügen. D.h., für die SysCP Benutzer (z.B. uid 10001, etc.) gibt es kein Pendant im. Ist der angedachte Weg also für jeden SysCP Kunden händisch einen lokalen Benutzer anzulegen?

  • Ich kenne mich zwar mit Syscp nicht aus, aber mich wundert, dass die Benutzer nicht angelegt werden. Virtuelle FTP-Benutzer habe ich, aber die sind tatsächlich existierenden Systembenutzern zugeordnet. Für mich klingt das nach einem Bug oder ein Fehlkonfiguration. Die Benutzer müssten mMn schon angelegt werden, von mir aus auch mit /bin/false als Shell, sodass sie sich nicht einloggen können.

    EDIT: Ich sehe gerade, dass das anscheinend doch geht mit den namenslosen Benutzern. Dann musst du den Benutzer wohl von Hand anlegen, wenn du das so machen willst.