Für Dateien, die mit dem Testbenutzerkonto im Verzeichnis / var / www erstellt wurden, muss g + rwx als Berechtigung und www-data als Gruppe angegeben werden.
Wie kann ich das erreichen?
Ich erstelle die Dateien über SSH.
Für Dateien, die mit dem Testbenutzerkonto im Verzeichnis / var / www erstellt wurden, muss g + rwx als Berechtigung und www-data als Gruppe angegeben werden.
Wie kann ich das erreichen?
Ich erstelle die Dateien über SSH.
Antworten:
Geben Sie /var/www
das setgid- Bit ein , um die Gruppe festzulegen :
chgrp www-data /var/www
chmod g+s /var/www
So passen Sie auch Unterverzeichnisse an: find /var/www -type d -exec chmod g+s {} +
Dadurch werden alle neu erstellten Dateien anstelle des Benutzers die Gruppe des übergeordneten Verzeichnisses erben.
Um die Standardgruppenberechtigungen festzulegen, müssen Sie ACLs verwenden . Festlegen einer "Standard" -ACL:
setfacl -m "default:group::rwx" /var/www
So passen Sie auch Unterverzeichnisse an: find /var/www -type d -exec setfacl -m d:g::rwx {} +
Hinweis: Für das Dateisystem muss die ACL-Unterstützung aktiviert sein. Manchmal ist es standardmäßig aktiviert. Auf ext3 oder ext4 wird möglicherweise "Operation not supported" angezeigt. In diesem Fall muss die Option manuell aktiviert werden:
Für ein aktuell eingehängtes Dateisystem: mount -o remount,acl /
Permanent - eine der folgenden Methoden:
auf fstab-ebene: editieren /etc/fstab
um acl
im optionsfeld zu haben
auf Dateisystemebene: tune2fs -o acl /dev/diskname
chmod
würden auch alle Dateien rauskommen .
install
irgendwie schaffen, die Standard-ACLs für Verzeichnisse zu umgehen.
/var/www/html/projects
Ordner und wenn www-data eine Datei erstellt, hat es rw-rw-r
Berechtigungen, aber wenn ich etwas in der Konsole mache, erstellt es eine Datei mit rw-r--r
. Wie kann ich erzwingen, dass neu erstellte Dateien immer über rw-rw-r
Berechtigungen verfügen ?
umask
. Die Standardberechtigungen pro Verzeichnis können setfacl
wie im Hauptbeitrag geändert werden.
Dies könnte dazu geführt haben, dass einige Leute bei der Antwort 'grawity' auf setgid hängen geblieben sind. Wenn sich die Gruppe des Ordners von Ihrer eigenen unterscheidet, müssen Sie möglicherweise chmod als root ausführen, aber es wird kein Fehler angezeigt, der darauf hinweist, dass Sie dies tun müssen.
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set
Die Gruppe der von einem Benutzer erstellten Dateien ist die Gruppe dieses Benutzers (in / etc / group). Die Berechtigungen werden von der UMASK gesteuerten Parameter diese sehen
stor
/appe
? Über HTTPPUT
? Über ein Shell-Konto? Diese Details sind wichtig, da sie die möglichen Antworten stark beeinflussen und in Ihrer Frage stehen müssen.