Meinen Sie wörtlich die traditionellen Berechtigungsbits oder interessieren Sie sich für andere berechtigungsähnliche Metadaten?
Mattdm
Antworten:
9
So ergänzen Sie die anderen Antworten:
Herkömmliche Unix-Berechtigungen sind unterteilt in:
read ( r)
schreiben ( w)
Datei / Zugriffsverzeichnis ausführen ( x)
Jedes davon wird als Bit gespeichert, wobei 1 "zulässig" und 0 "nicht zulässig" bedeutet.
Beispielsweise wird der normalerweise geschriebene Nur-Lese-Zugriff r--als binär 100oder oktal gespeichert 4.
Es gibt 3 Sätze dieser Berechtigungen, die den zulässigen Zugriff für Folgendes bestimmen:
der Besitzer der Datei
die Gruppe der Datei
alle anderen Benutzer
Sie werden alle zusammen in derselben Variablen gespeichert, z. B. rw-r-----Lese- / Schreibzugriff für den Eigentümer, schreibgeschützt für die Gruppe und kein Zugriff für andere, werden als 110100000binär, 640oktal gespeichert .
Das macht also 9 Bits.
Dann gibt es 3 andere spezielle Bits:
setuid
setgid
klebrig
Siehe man 1 chmodEinzelheiten von denen.
Und schließlich wird der Dateityp mit 4 Bits gespeichert, z. B. ob es sich um eine reguläre Datei, ein Verzeichnis, eine Pipe, ein Gerät oder was auch immer handelt.
Diese werden alle zusammen im Inode gespeichert und ergeben zusammen 16 Bit.
Nachdem ich durch diesen Blog-Beitrag über Linux-Dateiberechtigungen verwirrt war, wollte ich fast in UL-SE danach fragen, aber zum Glück fand ich Ihre Erklärung.
Menschheit und
4
Welche Berechtigungen? Grundberechtigungen passen in 16 Bit; ext2 verwendet 32 Bit plus weitere 32 Bit für Dateiflaggen ( chattr(1)); Dann verwenden POSIX-ACLs zusätzlich variablen Speicherplatz. Siehe /usr/include/linux/ext2_fs.hfür Details. (ext3 und ext4 bauen auf ext2 auf und verwenden meistens dieselbe Struktur.)
Informationen zu Dateien werden in einer Datenstruktur gespeichert, die als Inode bezeichnet wird. In dieser Struktur gibt es ein Feld für den Modus, das die Berechtigungen enthält. Dieses Feld auf meinem System ist ein vorzeichenloser Kurzschluss mit 2 Bytes und 16 Bit.
Schauen Sie sich fs.h in der Linux-Quelle an, um sich selbst davon zu überzeugen.
Antworten:
So ergänzen Sie die anderen Antworten:
Herkömmliche Unix-Berechtigungen sind unterteilt in:
r
)w
)x
)Jedes davon wird als Bit gespeichert, wobei 1 "zulässig" und 0 "nicht zulässig" bedeutet.
Beispielsweise wird der normalerweise geschriebene Nur-Lese-Zugriff
r--
als binär100
oder oktal gespeichert4
.Es gibt 3 Sätze dieser Berechtigungen, die den zulässigen Zugriff für Folgendes bestimmen:
Sie werden alle zusammen in derselben Variablen gespeichert, z. B.
rw-r-----
Lese- / Schreibzugriff für den Eigentümer, schreibgeschützt für die Gruppe und kein Zugriff für andere, werden als110100000
binär,640
oktal gespeichert .Das macht also 9 Bits.
Dann gibt es 3 andere spezielle Bits:
Siehe
man 1 chmod
Einzelheiten von denen.Und schließlich wird der Dateityp mit 4 Bits gespeichert, z. B. ob es sich um eine reguläre Datei, ein Verzeichnis, eine Pipe, ein Gerät oder was auch immer handelt.
Diese werden alle zusammen im Inode gespeichert und ergeben zusammen 16 Bit.
quelle
Welche Berechtigungen? Grundberechtigungen passen in 16 Bit; ext2 verwendet 32 Bit plus weitere 32 Bit für Dateiflaggen (
chattr(1)
); Dann verwenden POSIX-ACLs zusätzlich variablen Speicherplatz. Siehe/usr/include/linux/ext2_fs.h
für Details. (ext3 und ext4 bauen auf ext2 auf und verwenden meistens dieselbe Struktur.)quelle
Informationen zu Dateien werden in einer Datenstruktur gespeichert, die als Inode bezeichnet wird. In dieser Struktur gibt es ein Feld für den Modus, das die Berechtigungen enthält. Dieses Feld auf meinem System ist ein vorzeichenloser Kurzschluss mit 2 Bytes und 16 Bit.
Schauen Sie sich fs.h in der Linux-Quelle an, um sich selbst davon zu überzeugen.
quelle