Es ist immer das gleiche Problem. Upload mit Benutzer ftp und kein Zugriff für Benutzer apache.
Ich habe dieses Problem mit filesystems extended acls gelöst.
Es ist möglich, einen "Standard"-Benutzer und/oder eine "Standard"-Gruppe für neu erstellte Dateien festzulegen.
Was Sie tun müssen:
- fügen Sie 'acl' zu Ihren Einhängeoptionen für das gewünschte Dateisystem hinzu. (Bitte prüfen Sie vorher, ob Ihr Kernel für posix acl konfiguriert ist!)
- Verwenden Sie den Befehl 'setfacl', um die Berechtigungen zu setzen (je nach Distribution müssen Sie eventuell vorher ein Paket installieren, das 'setfacl' enthält).
Exemple :
Erstes eigenes ftp für Benutzer, damit Uploads durchgeführt werden können
# chown ftp:ftp /var/www/server/htdocs
# ls -la /var/www/server/htdocs/
insgesamt 0
drwxr-xr-x 2 ftp ftp 40 26. Nov 12:40 .
drwxrwxrwt 15 root root 360 26. Nov 12:40 ..
Als Nächstes setzen Sie den Standard für den Benutzer apache
# setfacl -d -m u:apache:rwx /var/www/server/htdocs
# setfacl -d -m g:apache:rwx /var/www/server/htdocs
# getfacl /var/www/server/htdocs
# file: /var/www/server/htdocs
# owner: ftp
# group: ftp
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:apache:rwx
default:group::r-x
default:group:apache:rwx
default:mask::rwx
default:other::r-x
Nachdem Sie Dateien oder Verzeichnisse in dieses Verzeichnis gelegt haben, werden Sie sehen, dass Sie mehrere Zugriffsrechte auf diese haben. Denken Sie aber daran, dass diese Rechte nur für neue Dateien gelten, nicht für bereits vorhandene.
# getfacl /var/www/server/htdocs/test.txt
# file: /var/www/server/htdocs/test.txt
# owner: ftp
# group: ftp
user::rw-
user:apache:rwx #effective:rw-
group::r-x #effective:r--
group:apache:rwx #effective:rw-
mask::rw-
other::r--
Wenn Sie 'ls -l' verwenden, sehen Sie ein '+' hinter den Berechtigungen, um sich über acl-Rechte zu informieren:
# ls -la /var/www/server/htdocs
insgesamt 0
drwxr-xr-x+ 3 ftp ftp 80 26. Nov 12:43 .
drwxrwxrwt 15 root root 360 26. Nov 12:40 ..
drwxrwxr-x+ 2 ftp ftp 40 26. Nov 12:43 test
-rw-rw-r--+ 1 ftp ftp 0 26. Nov 12:43 test.txt