Wie erzwinge ich Gruppen- und Zugriffsrechte für erstellte Dateien in einem bestimmten Verzeichnis?

Wie erzwinge ich Gruppen- und Zugriffsrechte für erstellte Dateien in einem bestimmten Verzeichnis?

Für Dateien aus demTestbenutzerKonto im Verzeichnis /var/www, ich brauche sie habeng+rwxals Berechtigungen undwww-Datenals Gruppe.

Wie kann ich das erreichen?

Ich erstelle die Dateien über SSH.

Antwort1

Um die Gruppe festzulegen, geben Sie /var/wwwdiesetgidbisschen:

chgrp www-data /var/www
chmod g+s /var/www

Um auch Unterverzeichnisse anzupassen:find /var/www -type d -exec chmod g+s {} +

Dadurch erben alle neu erstellten Dateien die Gruppe des übergeordneten Verzeichnisses und nicht die des Benutzers.


Um die Standardgruppenberechtigungen festzulegen, müssen SieZugriffssteuerungslisten. Legen Sie eine „Standard“-ACL fest:

setfacl -m "default:group::rwx" /var/www

Um auch Unterverzeichnisse anzupassen:find /var/www -type d -exec setfacl -m d:g::rwx {} +

Hinweis: Das Dateisystem muss ACL-Unterstützung aktiviert haben. Manchmal ist sie standardmäßig aktiviert;ext3oderext4Möglicherweise erhalten Sie die Meldung „Vorgang wird nicht unterstützt“. In diesem Fall muss er manuell aktiviert werden:

  • Für ein aktuell gemountetes Dateisystem:mount -o remount,acl /

  • Dauerhaft –einsder folgenden Methoden:

    • auf fstab-Ebene: Bearbeiten , um es im Optionsfeld /etc/fstabzu habenacl

    • auf Dateisystemebene:tune2fs -o acl /dev/diskname

Antwort2

Dies hat möglicherweise dazu geführt, dass einige Leute mit der „Gravity“-Antwort auf Setgid nicht weiterkamen. Wenn die Gruppe des Ordners nicht mit Ihrer eigenen übereinstimmt, müssen Sie möglicherweise chmod als Root ausführen, aber Sie erhalten keine Fehlermeldung, die 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

Antwort3

Die Gruppe der von einem Benutzer erstellten Dateien ist die Gruppe dieses Benutzers (in /etc/group). Die Berechtigungen werden durch den Parameter UMASK gesteuert. Sieh dir das an

verwandte Informationen