Ich möchte Benutzern erlauben, eine Datei zu ändern, die root gehört, oder einem Benutzer, der nicht selbst ist. Ich habe die Datei auf 777 geändert und bekomme "Operation nicht erlaubt". Ich habe den Benutzer zur Gruppe der Datei hinzugefügt und erhalte dieselbe. Warum kann ein Benutzer eine Datei, auf die er Schreibzugriff hat, nicht ändern?
permissions
ashleysmithgpu
quelle
quelle
sudo
: linux.die.net/man/8/sudo & linux.die.net/man/5/sudoersAntworten:
Für die normalen Zugriffsrechte ist dies eine Entwurfsentscheidung. Sie brauchen richacls :
WRITE_ACL
und vielleichtWRITE_OWNER
.quelle
Unix-Berechtigungen sind so konzipiert, dass sie einfach sind. Sie benötigen die Leseberechtigung zum Lesen aus einer Datei, die Schreibberechtigung zum Schreiben in eine Datei und die Ausführungsberechtigung zum Ausführen einer Datei. Sie müssen über eine Datei verfügen, um deren Metadaten zu ändern¹.
Das Zulassen, dass ein Benutzer, der eine Datei lesen kann, anderen die Leseberechtigung erteilt, oder das Zulassen, dass ein Benutzer, der eine Datei schreiben kann, anderen die Schreibberechtigung erteilt, würde das Sicherheitsmodell nicht wesentlich ändern. Dies liegt daran, dass Unix-Berechtigungen frei sind: Ein Benutzer, der eine Datei lesen kann, kann ihren Inhalt anderen Benutzern zur Verfügung stellen, auch wenn diese anderen Benutzer die Datei sonst nicht lesen könnten (und ähnlich wie beim Schreiben könnte der Benutzer als Proxy fungieren und im Namen anderer schreiben).
Wenn Sie einem Benutzer andererseits die Erteilung einer Berechtigung erlauben, über die er nicht verfügt, wird das Berechtigungssystem vollständig zerstört: Der Benutzer kann sich selbst alle Berechtigungen erteilen.
Es ist ziemlich selten, dass Sie die Berechtigungen einer Datei ändern müssen, die Sie nicht besitzen. Normalerweise sollten Sie dafür sorgen, dass die Datei die richtigen Berechtigungen hat, sobald sie erstellt wird. Wenn Sie das wirklich brauchen, können Sie dem Benutzer
sudo chmod
Rechte für einen bestimmten Modus und eine bestimmte Datei (zjoe: ALL = (ALL) chmod g+r /path/to/file
. B. ) erteilen .¹ Mit Ausnahme der Zugriffs- und Änderungszeiten, die insbesondere durch das Lesen oder Schreiben in die Datei festgelegt werden.
quelle