Einrichten von VSFTPD-Berechtigungen mit dem Apache-Server

8

Ich habe eine VM mit Ubuntu 10.10. Ich verwende Netbeans und lade Dateien auf ein FTP auf der virtuellen Maschine hoch. Ich benutze vsftpd.

Das Problem, das ich habe, ist, dass der Eigentümer des Ordners /var/wwwder Benutzer ist apache, damit der Apache-Server die Dateien lesen kann. So weit, ist es gut.

Aber wenn ich versuche, eine Datei vom FTP-Benutzer hochzuladen, kann user1ich das nicht. Ich weiß, was das Problem ist. Meine Frage ist, wie ich Berechtigungen für den Benutzer richtig einrichte apacheund user1alle Dateien im Verzeichnis / var / www schreiben / lesen kann.

Tek
quelle

Antworten:

17

Erstellen Sie eine Gruppe www-usersund machen Sie sie zum Gruppeninhaber von /var/www. Weisen Sie dann die Benutzer apacheund user1der Gruppe zu und setzen Sie die Berechtigungen für das /var/wwwVerzeichnis auf 775. Dadurch können user1alle anderen Benutzer in der www-usersGruppe lesen und schreiben /var/www. Dies erleichtert auch die Autorisierung anderer Benutzer zum Schreiben /var/www- weisen Sie den Benutzer einfach der www-usersGruppe zu.

Bearbeiten: Die korrekte Berechtigung für /var/wwwist 2775, einschließlich setgid, damit Dateien und Verzeichnisse im Inneren /var/wwwden Gruppenbesitz von erben /var/www.

bwDraco
quelle
Gute Antwort. Außer Apache nicht in der Lage ist , die Dateien zu lesen , nachdem ich etwas hochladen mit user1mir die folgenden Befehle lautete: chown -R apache:www-users /var/www, usermod -g www-users apache, usermod -g www-users user1, chmod 775 /var/www. Vermisse ich etwas
Tek
Die Umask kann so eingestellt werden, dass Leseberechtigungen von anderen verweigert werden. Überprüfen Sie, ob das Ändern der Umask hilfreich ist.
bwDraco
Ja. Das war ein Teil davon.
Tek
10
Hier sind die Schritte für den Fall, dass Googler einen Hinweis benötigen. 1) set up vsftpd for umask 0027 (/etc/vsftpd.conf) [local_umask=0027] 2) create www-users group (groupadd www-users) 3) add user to group (usermod -a -G group user) 4) Set apache to run as www-users group (httpd.conf) 5) chgrp www-users /var/www 6) chmod 2775 /var/www
Tek
2
Versuchen Sie außerdem, dem Verzeichnis die Berechtigung setgid hinzuzufügen : chmod g+s /var/www. Dadurch wird sichergestellt, dass die im Verzeichnis erstellten Dateien und Verzeichnisse der Gruppe gehören, der das Verzeichnis gehört.
bwDraco