Erteilen Sie einer Gruppe Schreibberechtigung für einen Ordner

2452
PaulB

Ich brauche Hilfe, um zu verstehen, wie die Erlaubnis zum Schreiben einer Gruppe in Ubuntu funktioniert. Ich bin als root eingeloggt und habe ein www-data:www-dataand ftpuser:ftpuser( user:group). Ich füge das ftpuserin die www-dataGruppe ein mit:

usermod -a -G www-data ftpuser 

Jetzt hat meine www-dataGruppe zwei Benutzer.

Ich mache dann die Gruppe www-data, den Besitzer des Ordners, /var/wwwmit:

chgrp -R www-data /var/www 

Noch habe ich keine Schreibfähigkeit für den Ordner durch ein Gruppenmitglied (obwohl die Gruppe es besitzt), es sei denn, ich gebe der Gruppe Schreibberechtigungen. Nach dieser besten Antwort muss ich nun auch die Berechtigungen für das Verzeichnis festlegen, sudo chmod -R 770 /path/to/the/directoryund dies verwirrt mich.

Wenn ein Benutzer der Besitzer eines Verzeichnisses ist, warum kann er es nicht schreiben? Kann ein Benutzer einer Gruppe der Gruppe Schreibberechtigungen für einen Ordner geben, der der Gruppe selbst gehört? Wo ist die Gruppe im Befehl definiert sudo chmod -R 770 /path/to/the/directory? Wird dies nicht allen Benutzern rekursive Berechtigungen geben?

0

2 Antworten auf die Frage

1
techraf

obwohl die Gruppe es besitzt

Nein, Gruppe besitzt keine Datei in einem Sinn, für den die Berechtigungen ownergelten. Eigentümerberechtigungen gelten nur für den Eigentümer - den Benutzer. und Gruppenberechtigungen gelten für die zugewiesene Gruppe.

Wenn ein Benutzer der Besitzer eines Verzeichnisses ist, warum kann er es nicht schreiben?

Er kann, außer dass ftpuserin Ihrem Fall nicht der Eigentümer ist.

Wahrscheinlich, weil Sie es nicht explizit sagen: rootoder www-datader Eigentümer /var/wwwder Datei ist und ftpuserMitglied der Gruppe ist www-data.

Selbst wenn der Benutzer www-dataund die Gruppe www-datadenselben Namen haben, sind sie für das Betriebssystem unterschiedliche Entitäten.

Kann ein Benutzer einer Gruppe der Gruppe Schreibberechtigungen für einen Ordner geben, der der Gruppe selbst gehört?

Nochmals: Ordner gehört keiner Gruppe. Wenn die Gruppe über Schreibberechtigung verfügt, kann jedes Mitglied der Gruppe die Berechtigungen für das Objekt ändern.

Wo ist die Gruppe, die im Befehl definiert ist sudo chmod -R 770 /path/to/the/directory

Die zweite 7bezieht sich auf die Gruppenberechtigungen ( 7eine Kombination von read, write, und execute).

Wird dies nicht allen Benutzern rekursive Berechtigungen geben?

Es wird (rekursiv) zuweisen:

  • read, writeund executefür den Besitzer (zuerst 7)
  • read, writeund executefür die Gruppe (zweitens 7)
  • keine Berechtigungen für andere Benutzer (zuletzt 0)
0
Alexander Kuznetsov

Von einer Gruppe freigegebenes Verzeichnis mit Schreibberechtigungen für vorhandene Dateien

Alle Benutzer sollten Mitglieder einer Gruppe www-data sein. Sie können sie mit hinzufügen

usermod -a -G www-data user1 usermod -a -G www-data user2 ...

Wenn Sie einer Gruppe www-data eine Schreibberechtigung für einen Ordner geben, können alle darin enthaltenen Dateien mit der Befehlsfolge erreicht werden:

chgrp -R www-data /var/www chmod -R g+ws /var/www

Alle neuen Dateien und Verzeichnisse werden mit der Gruppe www-data versehen und können von Mitgliedern der Gruppe beschrieben werden.

Berechtigungen für neue Dateien

Die Standardeinstellung für umask ist auf den meisten Linux-Systemen 022. Dies bedeutet, wenn Benutzer1 eine Datei oder ein Verzeichnis unter / var / www erstellt, wird diese Datei nur von Benutzer1 "editierbar", kann jedoch von Gruppe www-data gelesen werden.

Wenn dies ein erwartetes Verhalten ist, sollten Sie hier aufhören.

Verzeichnis, das von einer Gruppe mit Schreibberechtigung freigegeben wird

Sie sollten überprüfen, ob die erweiterte ACL auf Ihrem System aktiviert ist. Sie können nach / etc / fstab suchen und etwa Folgendes suchen: Wenn Sie diese Option aktiviert haben, müssen Sie erweiterte ACL-Parameter für Verzeichnisse angeben. /dev/sda5 / ext4 acl,.....

Sie fügen eine ACL hinzu, damit neue Dateien, die im Ordner / var / www erstellt wurden, auch von der www-data-Gruppe mit diesem Befehl beschrieben werden können:

setfacl -R -b -k -d -m g:www-data:rwx --mask $2

Wenn ein Benutzer1 eine Datei oder einen Ordner unter / var / www erstellt, kann er in diesem Szenario schreiben / löschen.

Jede neue Datei oder jedes neue Verzeichnis hat die Berechtigungen rw-rw - ???. Fragezeichen sind etwas, das Sie für die anderen setzen.

So überprüfen Sie Berechtigungen

Verwenden Sie diesen Befehl:

getfacl /var/www

Die Ausgabe sollte ungefähr so ​​aussehen:

# file: /var/www # owner: www-data # group: www-data # flags: -s- user::rwx group::rwx other::--- default:user::rwx default:group::rwx default:group:www-data:rwx default:mask::rwx default:other::---

Standardberechtigungen für den Ordner / var / www sind: drwxrws ---

Warum beziehen Sie ** `s` ** in` `chmod -R g + ws`` ein? Meinten Sie `` chmod -R g + wx``? Scott vor 6 Jahren 0