Gruppenberechtigungen sind zulässig, werden jedoch weiterhin verweigert

43

Ich habe eine ext4-Partition und ich habe den Gruppeneigentümer für alle Unterverzeichnisse auf mygroup gesetzt:

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

Mein Benutzer ist Teil dieser Gruppe. In dieser Partition befindet sich ein Ordner, der dem Benutzer "nobody" und jetzt der Gruppe "mygroup" gehört. Mein Benutzer ist Teil von 'mygroup'. Hier ist ein ls -l:

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

Beachten Sie, dass ich keine Datei löschen oder erstellen kann, die einer Gruppe gehört, zu der mein Benutzer gehört.

Ich verstehe nicht ganz, wie Gruppen funktionieren. Ich dachte, wenn Sie Teil einer Gruppe wären, würden Sie die Berechtigungen dieser Gruppe erben. Mache ich etwas falsch?

Vielen Dank

Chaos
quelle
Es sieht so aus, als wäre die Berechtigungs-Triade Eigentümer-Gruppen-Welt. Oben sehen Sie drwxr-sr-x für das Verzeichnis. Die Erlaubnis der Gruppe ist also rs. Es sieht so aus, als hätte chmod -R die Berechtigungen nicht rekursiv auf rwx gesetzt. Wenn ich das w-Bit für die Gruppenberechtigung des Ordners drehe, funktioniert es.
Chaos

Antworten:

69

Haben Sie diesen Benutzer kürzlich zu dieser Gruppe hinzugefügt, ohne sich dazwischen ab- oder anzumelden? Dann zeigt "groups" die Gruppe an, aber der Benutzer verfügt noch nicht über die Gruppenberechtigungen.

Sie können Ihre effektiven Gruppen mit anzeigen

$ id

Wenn ich beispielsweise meinen Benutzer pszur Gruppe hinzufüge faxund dann eingebe

$ id

Es zeigt nicht die Gruppe fax, aber

$ groups ps

zeigt fax.

Wenn Sie suIhrem eigenen Benutzer etwas antun, erhalten Sie die neue Gruppenzugehörigkeit:

$ su ps
$ id

Die Ausgabe enthält jetzt auch fax.

peschü
quelle
1
Das ist wirklich hilfreich zu wissen. Insbesondere der Teil 'sudo <Benutzername>'.
Chaos
3
Einloggen / Ausloggen ist so offensichtlich, dass ich den Punkt verpasst habe, vielen Dank Kumpel!
Nicolallias
1
@peschü Ich habe sudound benutze es regelmäßig. Der Fehler, den ich Ihnen gezeigt habe, ist, dass der Befehl ubuntu(dh der Benutzername) kein erkannter Befehl ist. Ich denke nicht, dass Ihr Vorschlag syntaktisch korrekt ist - vielleicht funktioniert er in Ihrem Fall, weil pses sich auch um einen Befehl sowie einen Benutzernamen handelt.
beldaz
1
@beldaz oh nein! Sie haben Recht! syntaktisch korrekt ist es su <username>. Ich habe den Beitrag bearbeitet.
peschü
1
Verdammt, das alte Abmelden / Wiederanmelden funktioniert jedes Mal.
Steampunkery
9

Die von Ihnen verwendete Methode scheint korrekt zu sein. Ich habe gerade versucht, es zu replizieren, und es hat einwandfrei funktioniert.

Ich bin nicht sicher, ob es einen Tippfehler gibt, aber es gibt ein kleines Problem mit dem Befehl. Es ist nicht erforderlich, "mygroup" dort zu erwähnen. Folgendes funktioniert

# chmod -R g+swrx /mount/abc

Auch Sie können das sBit entfernen , tun Sie einfach g+rwx. Nachdem Sie die Berechtigungen geändert haben und dies auch tun ls -l, sollten die entsprechenden Berechtigungen angezeigt werden.

Vivek Kapoor
quelle
2
Ich habe den Tippfehler mit dem Gruppennamen entfernt. Das Verzeichnis hat die wrx-Berechtigungen, wenn Sie ls -l ausführen, und es gehört nobody: mygroup. Obwohl myuser Teil von mygroup ist, kann myuser keine Dateien erstellen / löschen. Ich hoffe das ergibt Sinn.
Chaos
3

Sie können die Datei nicht entfernen, da die Gruppe mygroupnicht über Schreibberechtigungen für die Datei test.pngund den Ordner verfügt. Damit Schreibvorgänge auf die Datei angewendet werden können, sollten die Dateiberechtigungen wie folgt aussehen:

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

Wenn Sie sich das Berechtigungsformat genauer ansehen

duuugggooo

Die ersten drei Platzhalter uuusind Benutzer r ead, w rite und e x ecute. Die nächsten drei Platzhalter gggsind für die Gruppe und ooofür andere. In dem von OP Group geposteten Snippet fehlt die Schreibberechtigung .

Ashoka Lella
quelle
2

Hinzufügen zur akzeptierten Antwort (da ich noch keinen Kommentar abgeben kann):

Wenn Sie mit Software wie BitVise eine SSH-Verbindung zu Ihrem Server herstellen, gilt das einfache Schließen und erneute Öffnen eines Terminals nicht als An- und Abmelden. Es wird Dinge wie das Neuladen Ihrer ~/.bashrc, aber nicht die eigentlichen Gruppenaktualisierungen durchführen (wenn Sie die Gruppe in Ihrer "Login" -Sitzung hinzugefügt haben). Damit dies wirksam wird, müssten Sie sich vollständig abmelden und erneut mit Ihrem SSH-Schlüssel / Ihren Anmeldeinformationen anmelden.

Figidon
quelle
2

Für das Öffnen von Verzeichnissen muss das x-Bit gesetzt sein (für Verzeichnis wird dieses Bit als Suchbit angesehen). Daher verwende ich tree, um nur den Ordner zu erhalten und den Albtraum zu vermeiden, dass alle Dateien als ausführbare Dateien festgelegt werden (die Option für tree ist -d List directories only.):

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

Warnung!!! Sie sollten dies berücksichtigen:

  • Die Verwendung von chmod oder chown für das Stammverzeichnis /oder die Systemverzeichnisse zerstört Ihr Betriebssystem (tatsächlich ist alles, was für das /Verzeichnis oder die Systemverzeichnisse rekursiv ist, gefährlich).

  • Dies ist keine gute Sicherheitspraxis, um einen solchen Berechtigungsumfang festzulegen

Eduard Florinescu
quelle
1
Vielen Dank! Die Worte "Verzeichnisse brauchen x Bit gesetzt" lösten mein Problem! Ich habe "sudo chmod g + x <übergeordneter Pfad>" und es hat funktioniert.
Kinornirvana