Hinweis:
Eine bessere und saubere Lösung, wie man mehrere virtuelle Proftpd-Benutzer als www-data schreiben und lesen lassen lassen kann, findet ihr in diesem Tutorial.
Wenn ein FTP-User (Virtual User) Dateien und Ordner ändern/erstellen, werden diese auf meinem System mit dem Benutzer ftp-data (Gruppe ftp-data) geschrieben.
Wird von lighttpd eine Dateien angelegt, wird diese mit dem Benutzer www-data (Gruppe www-data) geschrieben.
Das Problem ist nun, wenn FTP-User Zugriff auf die von lighttpd geschriebenen Dateien bekommen sollen und umgekehrt.
Als aller erstes fügen wir den Benutzer ftp-data der Gruppe www-data hinzu:
usermod -a -G ftp-data www-data
Danach ändern wir den Benutzer und die Gruppe des FTP-Verzeichnises:
chown -R www-data:www-data /ftp
Nun geben wir allen Dateien und Ordner folgende Zugriffsrechte: 775
Das bedeutet:
User (7): Schreiben, Lesen und Ausführen
Gruppe (7): Schreiben, Lesen und Ausführen
Jeder (5): Lesen und Ausführen
chmod -R 775 /ftp
Werden von www-data (lighttpd, apache) Dateien angelegt, werden diese mit dem Benutzer www-data und der Gruppe www-data geschrieben.
Da wir allen Dateien für die Gruppe (ftp-data befindet sich ja in Gruppe www-data) alle Rechte gegeben haben, können wir nun mit dem FTP-User auf die Dateien zugreifen, die von www-data geschrieben worden sind.
Um nun auch www-data die Rechte zu geben, um auf Dateien von ftp-data zugreifen zu können, ändern wir wie folgt die config von proftpd (/etc/proftpd/proftpd.conf):
Umask 002 002
Durch Unmask werden nun Dateien und Ordner die hochgeladen werden, auf folgende Rechte gesetzt:
775 (777-002)