Linux-Gruppenberechtigungen werden nicht korrekt durchgesetzt.


18

Ich verwende einen Ubuntu 10.04 Server und habe einige sehr kontraintuitive Erfahrungen mit Benutzern / Gruppen. Beispielsweise:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

Die letzte Zeile erzeugt einen Berechtigungsfehler.

Ich habe sichergestellt, dass mein Benutzer Teil der Testgruppe ist (dies wird groups {my-user}bestätigt). Die Gruppe von test_file ist ebenfalls definitiv auf 'test' gesetzt und die Gruppenberechtigungen sind gesetzt.

Warum kann mein Benutzer nicht in die Datei Testdatei schreiben?

Antworten:


29

Wenn Sie einen Benutzer zu einer neuen Gruppe hinzufügen, wird dies nicht auf derzeit ausgeführte, sondern nur auf neue Prozesse angewendet. Sie müssen sich abmelden und dann wieder anmelden.


4
oder hacke su - usernamein deine laufende Konsole. du musst dich nicht
ausloggen, um

5

Sowohl das Abmelden als auch das Neustarten der Servermethoden funktionierten bei mir nicht.

Diese Methode funktioniert jedoch für mich: (Verweis auf diese Antwort )

chmod g+rwxs <parent folder>

1
Was macht das +sTeil? Vielen Dank.
tommy.carstensen

1
Es setzt das setuid-Bit. Dadurch kann eine Datei als Eigentümer der Datei ausgeführt werden. Angenommen, Sie haben eine Datei, die Sie als Root ausführen möchten, unabhängig davon, wer die Datei ausführt, würden Sie das setuid-Bit für diese Datei festlegen.
Julius

Der Schlüssel war x: Es sieht so aus, als würden Ausführungsrechte benötigt, um touchzu funktionieren.
asac

0

Mit dem newgrpBefehl können Sie die aktuelle Gruppen-ID des Benutzers ändern. Von man newgrp:

Der Befehl newgrp wird verwendet, um die aktuelle Gruppen-ID während einer Anmeldesitzung zu ändern. Wenn das optionale -Flag angegeben ist, wird die Umgebung des Benutzers neu initialisiert, als hätte sich der Benutzer angemeldet. Andernfalls bleibt die aktuelle Umgebung, einschließlich des aktuellen Arbeitsverzeichnisses, unverändert.


1
Dies hat auch den Effekt, dass Ihre aktuelle Gruppe ersetzt wird. Das ist nicht immer eine gute Idee.
Daenyth

Ich würde dies ablehnen, wenn ich könnte. Das Überschreiben von Gruppen könnte in Zukunft sehr frustrierend sein ... esp. mit -Rwahl!
Edward

0

Starten Sie den Computer neu, um sicherzustellen, dass keine blockierten Prozesse verhindern, dass Benutzer und Gruppen beim Abmelden und Anmelden ordnungsgemäß durchgesetzt werden.

Diese Schritte sollten Ihrem Benutzer der Gruppe testdie Schreibberechtigung für gebentest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Starten Sie den Computer neu oder melden Sie Ihren Benutzer vom Betriebssystem ab. Ein Terminal-Neustart reicht nicht aus.

touch test_file

Der Benutzer kann in die Datei schreiben, da sie Teil der Testgruppe ist und die Gruppe über die Berechtigung rwx verfügt.


3
Es ist nicht erforderlich, dass Sie den Computer neu starten müssen.
Kevin Panko
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.