Dateisystemberechtigungen
Die meisten Dateisysteme Fügen Sie Attribute von Dateien und Verzeichnissen hinzu, die die Fähigkeit der Benutzer steuern, zu lesen, zu ändern, zu navigieren und ausführen Der Inhalt des Dateisystems. In einigen Fällen können Menüoptionen oder Funktionen je nach Erlaubnisstufe eines Benutzers sichtbar oder versteckt gemacht werden. diese Art von Benutzeroberfläche wird bezeichnet als Berechtigte.
Zwei Arten von Berechtigungen sind weit verbreitet: herkömmliche Unix -Dateisystemberechtigungen und Zugriffskontrolllisten (ACLS) die in der Lage sind, eine spezifischere Kontrolle zu erhalten.
Dateisystemvariationen
Das Original Dateizuordnungstabelle Das Dateisystem verfügt über ein schreibgeschütztes Allbenutzer-Attribut pro Datei.
NTFS Implementiert in Microsoft Windows NT und seine Derivate verwenden ACLs[1] eine komplexe Anzahl von Berechtigungen bereitstellen.
OpenVMS Verwendet ein Berechtigungsschema, das dem von UNIX ähnelt. Es gibt vier Kategorien (System, Eigentümer, Gruppe und Welt) und vier Arten von Zugriffsberechtigungen (lesen, schreiben, ausführen und löschen). Die Kategorien sind nicht gegenseitig disjunkt: Die Welt umfasst die Gruppe, die wiederum Eigentümer umfasst. Die Systemkategorie umfasst unabhängig voneinander Systembenutzer.[2]
HFS Implementiert in Klassischer Mac OS Betriebssysteme, unterstützen Sie keine Berechtigungen.
Mac OS X Versionen 10.3 ("Panther") und vorherige Verwendung von POSIX-konformen Berechtigungen. Mac OS X, beginnend mit Version 10.4 ("Tiger"), unterstützt auch die Verwendung von NFSV4 -ACLs. Sie unterstützen "traditionelle UNIX -Berechtigungen", wie sie in früheren Versionen von Mac OS X und der verwendet werden Apple Mac OS X Server Version 10.4+ Dateiservices Administration Manual Administration Manual empfiehlt, wenn möglich nur herkömmliche Unix -Berechtigungen zu verwenden. Es unterstützt auch das "geschützte" Attribut des Mac OS Classic.
Solaris Der ACL -Unterstützung hängt vom verwendeten Dateisystem ab. älter UFS Dateisystem unterstützt POSIX.1E ACLs während ZFS Unterstützt nur NFSV4 -ACLs.[3]
Linux Unterstützung ext2, ext3, ext4, Btrfs und andere Dateisysteme, von denen viele POSIX.1E ACLS enthalten. Es gibt experimentelle Unterstützung für NFSV4 -ACLs für Ext3[4] und ext4 -Dateisysteme.
Freebsd Unterstützt POSIX.1E ACLs auf UFS und NFSV4 -ACLs auf UFS und ZFS.[5][6]
IBM Z/OS Implementiert die Dateisicherheit mit RACF (Ressourcenzugriffskontrollanlage)[7]
Das Amigaos -Dateisystem in Amigados Unterstützt ein Berechtigungssystem relativ fortgeschritten für ein Einzelbenutzer-Betriebssystem. In Amigaos 1.x hatten Dateien Archiv, gelesen, schreiben, ausführen und löschen (gemeinsam als ARWED) Berechtigungen/Flags. In Amigaos 2.x und höher wurden zusätzliche Halten-, Skript- und reine Berechtigungen/Flags hinzugefügt.
Traditionelle Unix -Berechtigungen
Berechtigungen auf Unix-artig Dateisysteme werden in drei Bereichen oder Klassen verwaltet Benutzer, Gruppe, und Andere. Wenn eine Datei erstellt wird, werden ihre Berechtigungen durch die eingeschränkt Ummask des Prozesses, der es geschaffen hat.
Klassen
Dateien und Verzeichnisse sind im Besitz eines Benutzer. Der Eigentümer bestimmt die Datei der Datei Benutzerklasse. Für den Eigentümer gelten unterschiedliche Berechtigungen.
Dateien und Verzeichnisse werden a zugewiesen a Gruppe, die die Datei definieren Gruppenklasse. Für Mitglieder der Gruppe der Datei gelten unterschiedliche Berechtigungen. Der Eigentümer kann Mitglied der Gruppe der Datei sein.
Benutzer, die weder Eigentümer noch Mitglied der Gruppe sind, umfassen die Datei einer Datei andere Klasse. Für andere gelten unterschiedliche Berechtigungen.
Das Wirksame Berechtigungen werden basierend auf der ersten Klasse bestimmt, in der der Benutzer in der Reihenfolge des Benutzers, der Gruppe dann anderer, in die Reihenfolge fällt. Zum Beispiel hat der Benutzer, der der Eigentümer der Datei ist, die Berechtigungen, die der Benutzerklasse unabhängig von den Berechtigungen der Gruppenklasse oder einer anderen Klasse zugewiesen wurden.
Berechtigungen
Unix-artig Systeme implementieren drei spezifische Berechtigungen, die für jede Klasse gelten:
- Das lesen Die Berechtigte gewährt die Möglichkeit, eine Datei zu lesen. Wenn diese Erlaubnis für ein Verzeichnis eingestellt ist, gibt es die Möglichkeit, das zu lesen Namen von Dateien im Verzeichnis, aber nicht weitere Informationen darüber wie Inhalte, Dateityp, Größe, Eigentümer und Berechtigungen herauszufinden.
- Das schreiben Die Berechtigte gewährt die Möglichkeit, eine Datei zu ändern. Wenn diese Berechtigung für ein Verzeichnis festgelegt ist, können Sie Einträge im Verzeichnis ändern, das das Erstellen von Dateien, das Löschen von Dateien und das Umbenennen von Dateien umfasst. Beachten Sie, dass dies erforderlich ist ausführen ist auch eingestellt; Ohne sie ist die Schreibgenehmigung für Verzeichnisse bedeutungslos.
- Das ausführen Die Berechtigung gewährt die Möglichkeit, eine Datei auszuführen. Diese Genehmigung muss für ausführbare Programme festgelegt werden, damit das Betriebssystem sie ausführen kann. Wenn die Ausführungsgenehmigung für ein Verzeichnis festgelegt wird, wird die Ausführungsgenehmigung als die interpretiert Suche Erlaubnis: Es gibt die Möglichkeit, auf Dateiinhalte und Meta-Information zuzugreifen, wenn sein Name bekannt ist, jedoch keine Dateien im Verzeichnis auflistet, es sei denn lesen ist auch eingestellt.
Die Auswirkung der Festlegung der Berechtigungen in einem Verzeichnis und nicht in einer Datei ist "eines der am häufigsten missverstandenen Dateiberechtigungsprobleme".[8]
Wenn keine Erlaubnis festgelegt ist, werden die entsprechenden Rechte abgelehnt. Im Gegensatz zu ACL-basierten Systemen werden Berechtigungen für UNIX-ähnliche Systeme nicht vererbt. In einem Verzeichnis erstellte Dateien haben nicht unbedingt die gleichen Berechtigungen wie dieses Verzeichnis.
Ändern des Berechtigungsverhaltens mit SetUid, Setgid und klebrigen Bits
Unix-artig Systeme verwenden normalerweise drei zusätzliche Modi. Dies sind tatsächlich Attribute, werden aber als Berechtigungen oder Modi bezeichnet. Diese speziellen Modi sind für eine Datei oder ein Verzeichnis insgesamt, nicht nach einer Klasse, obwohl in der symbolischen Notation (siehe unten) das SetUid -Bit in der Triade für den Benutzer festgelegt ist, das SetGid -Bit in der Triade für die Gruppe und die Sticky Bit ist für andere in der Triade eingestellt.
- Das Benutzer -ID festlegen, setUidoder Suid -Modus. Wenn eine Datei mit SetUid ausgeführt wird Benutzeridentifikation an die Eigentümerklasse gegeben. Auf diese Weise können Benutzer vorübergehend als Root (oder ein anderer Benutzer) behandelt werden.
- Das Setzen Sie Gruppen -ID, setgid, oder SGID -Erlaubnis. Wenn eine Datei mit setgid wird ausgeführt, der resultierende Prozess wird das annehmen Gruppen-ID an die Gruppenklasse gegeben. Wenn SetGid auf ein Verzeichnis angewendet wird, erben neue Dateien und Verzeichnisse, die unter diesem Verzeichnis erstellt wurden, ihre Gruppe von diesem Verzeichnis. (Das Standardverhalten besteht darin, die primäre Gruppe des effektiven Benutzers beim Einstellen der Gruppe neuer Dateien und Verzeichnisse zu verwenden, außer auf BSD-abgeleiteten Systemen, die sich so verhalten, als ob das SetGid-Bit immer in allen Verzeichnissen festgelegt wäre (siehe SetUid).).)
- Das klebrig Modus (auch bekannt als die Text Modus). Das klassische Verhalten des klebrigen Bits in ausführbaren Dateien bestand darin, das zu fördern Kernel das resultierende Prozessbild im Speicher über die Beendigung hinaus beizubehalten; Eine solche Verwendung des klebrigen Bits ist jedoch jetzt nur auf eine Minderheit von Unix-ähnlichen Betriebssystemen beschränkt (HP-UX und Unixware). In einem Verzeichnis verhindert die Sticky -Erlaubnis, Benutzer umzubenennen, zu bewegen oder zu löschen, enthaltene Dateien, die von Benutzern als sich selbst gehören, auch wenn sie eine Schreibberechtigung in das Verzeichnis haben. Nur der Verzeichnisbesitzer und der Superuser sind davon befreit.
Diese zusätzlichen Modi werden auch als als bezeichnet SetUid Bit, setgid bit, und klebriges Stück, aufgrund der Tatsache, dass sie jeweils nur ein bisschen belegen.
Notation traditioneller Unix -Berechtigungen
Symbolische Notation
UNIX -Berechtigungen werden entweder in symbolischer Notation oder in Oktalnotation dargestellt.
Die häufigste Form, wie vom Befehl verwendet ls -l
, ist Symbolische Notation.
Drei Erlaubnis -Triaden | |
---|---|
Erste Triade | Was der Besitzer kann |
Zweite Triade | Was die Gruppenmitglieder tun können |
dritte Triade | Was andere Benutzer tun können |
Jede Triade | |
Erster Charakter | r : lesbar |
Zweiter Charakter | w : schreibbar |
dritter Charakter | x : ausführbare Dateis oder t : setUid/setgid oder klebrig (auch ausführbar)S oder T : setUid/setgid oder klebrig (nicht ausführbar) |
Der erste Charakter der ls
Anzeige zeigt die an Dateityp und bezieht sich nicht mit Berechtigungen. Die verbleibenden neun Zeichen sind in drei Sätzen, die jeweils eine Klasse von Berechtigungen als drei Zeichen darstellen. Der erste Satz repräsentiert die Benutzer Klasse. Der zweite Satz repräsentiert die Gruppe Klasse. Der dritte Satz repräsentiert die Andere Klasse.
Jedes der drei Zeichen repräsentieren die Berechtigungen Lese-, Schreiben und Ausführung:
-
r
Wenn das Lesen erlaubt ist,-
wenn es das nicht ist. -
w
Wenn das Schreiben erlaubt ist,-
wenn es das nicht ist. -
x
Wenn die Ausführung zulässig ist,-
wenn es das nicht ist.
Das Folgende sind einige Beispiele für symbolische Notation:
-
-rwxr-xr-x
: Eine reguläre Datei, deren Benutzerklasse vollständige Berechtigungen hat und deren Gruppe und andere Klassen nur die Berechtigungen lesen und ausführen. -
CRW-RW-R--
: Eine Charakter -Sonderdatei, deren Benutzer- und Gruppenklassen die Les- und Schreibberechtigungen haben und deren andere Klasse nur die Leserlaubnis hat. -
DR-X ------
: Ein Verzeichnis, dessen Benutzerklasse Berechtigungen gelesen und ausgeführt hat und deren Gruppe und andere Klassen keine Berechtigungen haben.
In einigen Berechtigungssystemen zusätzliche Symbole in der ls -l
Anzeige repräsentiert zusätzliche Berechtigungsfunktionen:
- + (plus) Suffix zeigt eine Zugriffskontrollliste an, die zusätzliche Berechtigungen steuern kann.
- . (dot) Suffix zeigt eine an Selinux Kontext ist vorhanden. Details können mit dem Befehl aufgeführt werden
ls -z
. - @ Suffix zeigt an Erweiterte Dateiattribute sind anwesend.
Die darstellen setUid, setgid und klebrig oder Text Attribute, das ausführbare Zeichen (x
oder -
) wird modifiziert. Obwohl diese Attribute die Gesamtdatei beeinflussen, nicht nur Benutzer in einer Klasse, das SETUID ausführbarer Charakter in der Triade für andere. Für die SetUid- oder SetGid -Attribute in der ersten oder zweiten Triade die x
wird s
und die -
wird S
. Für das klebrige oder Textattribut in der dritten Triade die x
wird t
und die -
wird T
. Hier ist ein Beispiel:
-
-rwsr-sr-t
: Eine Datei, deren Benutzerklasse Berechtigungen gelesen, schreiben und ausführen; deren Gruppenklasse hat die Erlaubnis gelesen; deren andere Klasse hat Berechtigungen gelesen und ausgeführt; und was hat setUid, setgid und klebrig Attribute festgelegt.
Numerische Notation
Eine andere Methode zur Darstellung von UNIX -Berechtigungen ist eine Oktal (Basis-8) Notation wie gezeigt von STAT -C %a
. Diese Notation besteht aus mindestens drei Ziffern. Jede der drei rechtlichen Ziffern stellt eine andere Komponente der Berechtigungen dar: Eigentümer, Gruppe und andere. (Wenn eine vierte Ziffer vorhanden ist, befasst SetUid Bit, das setgid bit und die klebriges Stück.))
Jede dieser Ziffern ist die Summe seiner Komponentenbits in der Binäres Ziffernsystem. Infolgedessen tragen bestimmte Bits der Summe bei, da sie durch eine Ziffer dargestellt wird:
- Das Lesebit fügt 4 zu seiner Gesamtsumme hinzu (in Binary 100).
- Das Schreibbit fügt 2 zu seiner Gesamtsumme hinzu (in Binary 010), und
- Das Ausführungsbit fügt 1 zu seiner Gesamtsumme hinzu (in Binary 001).
Diese Werte erzeugen niemals mehrdeutige Kombinationen; Jede Summe stellt einen bestimmten Satz von Berechtigungen dar. Technisch gesehen ist dies eine Oktalpräsentation von a Bitfeld - Jedes Bit bezieht sich auf eine separate Genehmigung, und die Gruppierung von 3 Bits gleichzeitig in Oktal entspricht der Gruppierung dieser Berechtigungen nach Benutzer, Gruppen und anderen.
Dies sind die Beispiele aus der Symbolische Notation Abschnitt in Oktalnotation:
Symbolisch Notation | Numerisch Notation | Englisch |
---|---|---|
---------- | 0000 | Keine Berechtigungen |
-rwx ------ | 0700 | Lesen, schreiben und nur für den Eigentümer ausführen |
-rwxrwx --- | 0770 | Lesen, schreiben und für Eigentümer und Gruppe ausführen |
-rwxrwxrwx | 0777 | Lesen, schreiben und für Eigentümer, Gruppe und andere ausführen |
--- x-x-x | 0111 | ausführen |
--w-w-w-- | 0222 | schreiben |
--wx-wx-wx | 0333 | Schreiben und ausführen |
-r- r- r-- | 0444 | lesen |
-r-xr-xr-x | 0555 | Lesen & ausführen |
-rw-rw-rw- | 0666 | lesen Schreiben |
-rwxr ----- | 0740 | Eigentümer kann lesen, schreiben und ausführen; Gruppe kann nur lesen; Andere haben keine Berechtigungen |
Benutzer private Gruppe
Einige Systeme unterscheiden sich vom herkömmlichen POSIX -Modell von Benutzern und Gruppen durch die Erstellung einer neuen Gruppe - einer "Benutzer -privaten Gruppe" - für jeden Benutzer. Unter der Annahme, dass jeder Benutzer das einzige Mitglied seiner privaten Benutzergruppe ist, ermöglicht dieses Schema, dass ein Ummask von 002 verwendet werden kann, ohne dass andere Benutzer in normalen Dateien in normalen Verzeichnissen schreiben können, da solche Dateien der privaten Gruppe des Erstellers zugewiesen werden. Wenn das Teilen von Dateien jedoch wünschenswert ist, kann der Administrator eine Gruppe erstellen, die die gewünschten Benutzer enthält, ein gruppierbares Verzeichnis erstellen, das der neuen Gruppe zugeordnet ist, und vor allem das Verzeichnis setgid machen. Durch das SetGID werden die darin erstellten Dateien derselben Gruppe wie das Verzeichnis und die 002 UMask (aktiviert durch Verwendung von Benutzergruppen der Benutzergruppen) sichergestellt, dass andere Mitglieder der Gruppe in diese Dateien schreiben können.[9][10]
Siehe auch
- Vergleich_OF_FILE_SYSTEMS#metadata
- Chmod: Änderungsmodus (Berechtigungen) auf UNIX-ähnlichen Dateisystemen
- Chattr oder CHFLAGS: Ändern Sie Attribute oder Flags, einschließlich derer, die den Zugriff einschränken.
- lsattr Listenattribute
- Posix
- Ummask
- Benutzerkennung (UNIX)
- Gruppenkennung (UNIX)
Verweise
- ^ "Datei- und Ordnerberechtigungen". Microsoft.
- ^ "OpenVMS -Dokumentation". Archiviert von das Original Am 2012-03-05. Abgerufen 2009-06-06.
- ^ "Oracle Solaris ZFS Administration Guide" (PDF). September 2010.
- ^ "Archivierte Kopie". Archiviert von das Original am 2008-10-12. Abgerufen 2010-05-04.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ "NFSV4_ACLS - FreeBSD Wiki".
- ^ "Freenas 9.1.1 Benutzerhandbuch" (PDF). 2013.
- ^ "IBM Knowledge Center".
- ^ Hatch, Bri. "Linux -Dateiberechtigung Verwirrung Pt 2", "Hacking Linux Exposed", 24. April 2003, abgerufen am 6. Juli 2011.
- ^ Epstein, Brian. "Wie und warum von Benutzer privaten Gruppen in Unix". Security.iass.edu. Institut für fortgeschrittene Studiennetzwerksicherheit. Abgerufen 5. August 2014.
- ^ "Red Hat Enterprise Linux 7 Systemadministratorhandbuch, 4.3.4 Erstellen von Gruppenverzeichnissen". Red Hat -Kundenportal. Roter Hut.
Externe Links
- Das Linux -Kochbuch: Gruppen und wie man darin arbeitet von Michael Stutz 2004