Die Verwendung von chown zum Ändern des Gruppeneigentümers eines Verzeichnisses ist nicht zulässig. Warum?

10

Ich versuche, chownin einem Verzeichnis auszuführen , das die folgenden Berechtigungen und Eigentümer hat:

drwxrwxr-x 2 justin devs  4096 Jan  1 20:42 test

Ich versuche einfach Folgendes als justinBenutzer auszuführen :

chown justin:nginx test

Ändern Sie also im Grunde nur den Gruppenbesitzer in nginx, aber ich bekomme:

chown: changing ownership of `test/': Operation not permitted

Irgendwelche Ideen?

Justin
quelle

Antworten:

15

Verwenden Sie zuerst den chgrpBefehl anstelle von chown und das wird funktionieren.

Bei Verwendung von chown ..... Aus Sicherheitsgründen ist in den meisten Linux-Kontexten jede Änderung des Eigentums auf den Root-Benutzer beschränkt, obwohl Sie als Eigentümer der Datei, des Verzeichnisses usw. markiert sind oder nicht. In einem Fall soll dies verhindern, dass Benutzer Kontingenten umgehen, indem sie die Dateiberechtigungsbits auf 777 setzen und den Besitz einer Datei auf einen anderen unbekannten Benutzer ändern und ihr Kontingent verschlingen.

Die Verwendung des chownBefehls in einem Benutzerkontext, insbesondere wenn sich der Besitz nicht ändert, sollte daher nicht nur zum Ändern der Gruppe einer Datei verwendet werden.

HINWEIS: Sie müssen Mitglied der Gruppe sein, in die Sie die Datei ändern möchten. Dies kann überprüft werden durch id -a. Wenn Sie nicht zur Gruppe gehören, wird diese Meldung angezeigt, obwohl Sie der Eigentümer der Datei sind.

mdpc
quelle
1
Gleiches chgrp nginx testgilt für den Betrieb nicht.
Justin
Wenn Sie den Befehl chgrp als Eigentümer des Inodes ausführen, sollte dies funktionieren. Ist Ihr Dateisystem NUR LESEN?
mdpc
Nein, funktioniert nicht. Hier ist ein Testfall:$ mkdir test $ chgrp nginx test/ chgrp: changing group of test/: Operation not permitted $ ll total 4 drwxrwxr-x 2 justin justin 4096 Jan 1 21:18 test
Justin
1
Verstanden ... Sie können den Besitz einer Gruppe, in der Sie nicht sein dürfen, nicht ändern. Überprüfen Sie id -a, ob die Gruppe, in die Sie die Datei ändern möchten, für Sie verfügbar ist.
mdpc
1
Ja, das ist die Lösung.
mdpc
4

Sie müssen Teil der Gruppe sein, um den aktuellen Gruppenbesitz ändern zu können. Sie können die /etc/groupsDatei als root bearbeiten , um sicherzustellen, dass der Benutzer justin Teil der nginx-Gruppe ist. Nachdem Sie Änderungen für die Gruppe vorgenommen haben, müssen Sie sich erneut beim System anmelden, um die Auswirkungen zu beeinflussen, oder um ohne Neustart / Abmelden zur Gruppe zu wechseln. Sie können cmd verwenden newgrp nginx.

Jetzt sollten Sie in der Lage sein, die Gruppe der Datei oder des Ordners mit cmd chgrp nginx testals Benutzer justin zu ändern.

Wolkenmeteor
quelle