Ich bin (für mich) auf etwas Unerwartetes gestoßen, was Dateiberechtigungen unter Linux (Arch Linux) betrifft. Grundsätzlich habe ich:
userX
imgroupX
fileX userX:groupX ---rwx----
Was mich verwundert: Ich kann keine Aktion ( rwx
) ausführen fileX
. Ist das richtig? Kann jemand bitte bestätigen, dass dies tatsächlich das erwartete Verhalten ist?
Die einzigen Aktionen, die ich ausführen kann, sind mv
und rm
weil ich Schreibberechtigungen für das übergeordnete Verzeichnis habe.
Die Sache ist, ich dachte immer, diese Berechtigungen kollabieren, beginnend mit der allgemeinsten (other -> group -> user). Mit anderen Worten, wenn es o=rwx
wen interessiert, wie die Einstellungen für die Gruppe und den Benutzer sind? Anscheinend ist dies nicht der Fall, aber es ergibt für mich keinen Sinn. es scheint nicht intuitiv zu sein. Das Einzige, wofür dieser Ansatz nützlich zu sein scheint, ist das einfache Ausschließen einer bestimmten Person / Gruppe. Außerdem sollte der Besitzer (und die Gruppe?) chmod
Sowieso in der Lage sein, richtig? Irgendwelche Gedanken dazu?
id
Antworten:
Wenn dies der Fall wäre, würden "andere" Berechtigungen für alle gelten.
Das ist anders als in deinem vorherigen Satz. Hier implizieren Sie, dass die Berechtigungen zusammen oder zusammen gegeben sind, z. B. dass userX die Leseberechtigung besitzt, wenn userX die Datei besitzt und die Datei vom Benutzer lesbar ist, oder wenn eine Gruppe, zu der userX gehört, die Datei besitzt und die Datei eine Gruppe ist -lesbar oder wenn die Datei nicht lesbar ist. Aber so funktioniert es nicht. In der Tat
o=rwx
bedeutet dies, dass dierwx
Berechtigungen für andere gelten, aber nichts über Entitäten aussagt, die keine anderen sind.Erstens spielt es keine direkte Rolle, zu welcher Gruppe ein Benutzer gehört. Der Kernel kennt keine Benutzer, die zu Gruppen gehören. Der Kernel verwaltet für jeden Prozess eine Benutzer-ID (die effektive UID ) und eine Liste von Gruppen-IDs (die effektive GID und die zusätzlichen GIDs). Die Gruppen werden zur Anmeldezeit durch den Anmeldeprozess bestimmt - es ist der Anmeldeprozess, der die Gruppendatenbank liest (z
/etc/group
. B. ). Benutzer- und Gruppen-IDs werden von untergeordneten Prozessen geerbt¹.Wenn ein Prozess versucht, eine Datei mit herkömmlichen Unix-Berechtigungen zu öffnen:
Es wird immer nur ein Satz von RWX-Bits verwendet. Der Benutzer hat Vorrang vor der Gruppe, die Vorrang vor anderen hat. Wenn Zugriffssteuerungslisten vorhanden sind , wird der oben beschriebene Algorithmus verallgemeinert:
Siehe auch Präzedenz von ACLS , wenn ein Benutzer zu mehreren Gruppen gehört , um weitere Informationen darüber , wie ACL - Einträge verwendet werden, einschließlich der Wirkung der Maske.
Dies
-rw----r-- alice interns
zeigt eine Datei an, die von Alice gelesen und geschrieben werden kann und die von allen anderen Benutzern außer Praktikanten gelesen werden kann. Auf eine Datei mit Berechtigungen und Inhabern können----rwx--- alice interns
nur Praktikanten mit Ausnahme von Alice zugreifen (unabhängig davon, ob sie Praktikantin ist oder nicht). Da Alice anrufen kannchmod
, um die Berechtigungen zu ändern, bietet dies keine Sicherheit. Es ist ein Randfall. Auf Systemen mit ACLs ermöglicht der generalisierte Mechanismus das Entfernen von Berechtigungen von bestimmten Benutzern oder bestimmten Gruppen, was manchmal nützlich ist.Das Verwenden eines einzelnen Satzes von Bits anstelle des Ordnens aller Bits für jede Aktion (Lesen, Schreiben, Ausführen) hat mehrere Vorteile:
¹ Sie können sich ändern, wenn ein setuid- oder setgid-Prozess ausgeführt wird. Dies hängt nicht mit dem vorliegenden Problem zusammen.
quelle
Die spezifischeren Berechtigungen haben Vorrang vor den weniger spezifischen.
Da Sie der Eigentümer der Datei sind, erhalten Sie nur Eigentümerberechtigungen. Der Besitzer hat keine Berechtigungen. Sie können also nichts tun. Wären Sie nicht der Eigentümer der Datei und ein Gruppenmitglied, würden Gruppenberechtigungen gelten.
Bitte lesen Sie diesen Abschnitt der Wiki-Seite
https://en.wikipedia.org/wiki/File_system_permissions#Classes
quelle
-rwxrw----
bedeutet, dass der Besitzer Lese-, Schreib- und Ausführungsberechtigungen hat, die Gruppe Lese- und Schreibberechtigungen hat und andere keine Berechtigungen haben.Mit den von Ihnen angegebenen Berechtigungen erhält die Gruppe 'groupX' die Berechtigung zum Lesen, Schreiben und Ausführen der Datei. Wenn Sie Mitglied der Gruppe "groupX", aber nicht der Eigentümer der Datei sind, gelten diese Berechtigungen für Sie.
In diesem Fall gehe ich davon aus, dass Sie tatsächlich der Eigentümer der Datei sind. Nur die für den Eigentümer festgelegten Berechtigungen gelten dann für Sie. Natürlich kann der Eigentümer die Berechtigungen für die Datei überschreiben oder ändern. Die Gruppe kann dies jedoch nicht. Zum Beispiel werden Sie von vim aufgefordert, zu bestätigen, ob Sie in eine Datei schreiben, für die Sie keine Schreibberechtigung haben, für die Sie jedoch Eigentümer sind.
Normalerweise lese ich Berechtigungen von links nach rechts. Bin ich der Besitzer? Wenn ja, gelten die Besitzerberechtigungen. Wenn nicht; Bin ich ein Mitglied der Gruppe? Wenn ja, gelten Gruppenberechtigungen. Wenn nicht, dann gelten für mich die Berechtigungen für "Andere".
In einigen Fällen ist es nützlich, Eigentümer einer Datei zu sein, aber keine Schreibrechte zu haben. Es schützt Sie vor versehentlichem Löschen oder Ändern der Datei. Persönlich habe ich die Berechtigung 400 für alle meine Vorlagendateien festgelegt, um sicherzustellen, dass ich sie nicht versehentlich ändere. Gleiches gilt für Ausführungsberechtigungen.
quelle
Ich konnte einen Benutzer zu einer Gruppe hinzufügen, der Gruppe Berechtigungen für ein Verzeichnis (070) erteilen und dann NACH EINEM NEUSTART auf den Ordner zugreifen.
Gruppe erstellen: sudo groupadd Gruppenname
Benutzer zur Gruppe hinzufügen : sudo gpasswd -a Benutzername Gruppenname
Stellen Sie sicher, dass sich das gesamte Verzeichnis im korrekten Gruppenbesitz befindet (muss aktuelles Mitglied von groupname sein, um ausgeführt zu werden): sudo chgrp -R groupname directory_path /
Geben Sie nur die Gruppe rwx für den Ordner an (könnte nur rw sein, passen Sie sie nach Bedarf an): sudo chmod -R 070 directory_path
Vergewissern Sie sich, dass Sie sich abgemeldet und wieder angemeldet haben. Wenn dies nicht funktioniert, starten Sie den Computer neu. Das hat bei mir funktioniert.
quelle