Sowohl der Kernel als auch das Dateisystem spielen eine Rolle. Berechtigungen werden im Dateisystem gespeichert, daher muss ein Speicherort für die Informationen im Dateisystemformat vorhanden sein. Berechtigungen werden vom Kernel erzwungen und an Anwendungen übermittelt. Daher muss der Kernel Regeln implementieren, um zu bestimmen, was die im Dateisystem gespeicherten Informationen bedeuten.
"Unix-Dateiberechtigungen" beziehen sich auf ein herkömmliches Berechtigungssystem, das drei Aktionen (Lesen, Schreiben, Ausführen) umfasst, die über drei Rollentypen (Benutzer, Gruppe, andere) gesteuert werden. Die Aufgabe des Dateisystems besteht darin, 3 × 3 = 9 Informationsbits zu speichern. Die Aufgabe des Kernels besteht darin, diese Bits als Berechtigungen zu interpretieren. Insbesondere wenn ein Prozess eine Operation für eine Datei versucht, muss der Kernel unter Berücksichtigung des Benutzers und der Gruppen, unter denen der Prozess ausgeführt wird, die Berechtigungsbits der Datei und die angeforderte Operation bestimmen, ob die Operation zugelassen werden soll. ("Unix-Dateiberechtigungen" enthalten normalerweise auch setuid- und setgid-Bits , die streng genommen keine Berechtigungen sind.)
Moderne Unix-Systeme unterstützen möglicherweise andere Arten von Berechtigungen. Die meisten modernen Unix-Systeme (Solaris, Linux, * BSD) unterstützen Zugriffssteuerungslisten, mit denen Lese- / Schreib- / Ausführungsberechtigungen für mehr als einen Benutzer und mehr als eine Gruppe für jede Datei zugewiesen werden können. Das Dateisystem muss Platz zum Speichern dieser zusätzlichen Informationen haben, und der Kernel muss Code zum Nachschlagen und Verwenden dieser Informationen enthalten. Ext2, reiserfs, btrfs, zfs und die meisten anderen modernen Unix-Dateisystemformate definieren einen Ort zum Speichern solcher ACLs. Mac OS X unterstützt einen anderen Satz von ACLs, die nicht traditionelle Berechtigungen wie "Anhängen" und "Unterverzeichnis erstellen" enthalten. Das HFS + -Dateisystemformat unterstützt sie. Wenn Sie ein HFS + -Volume unter Linux bereitstellen, werden diese ACLs nicht erzwungen, da der Linux-Kernel sie nicht unterstützt.
Umgekehrt gibt es Betriebssysteme und Dateisysteme, die die Zugriffskontrolle nicht unterstützen. Beispielsweise wurden FAT und Varianten für Einzelbenutzer-Betriebssysteme und Wechselmedien entwickelt, und ihre Berechtigungen sind auf Lesen / Lesen-Schreiben und Verstecken / Sichtbar beschränkt. Dies sind die von DOS erzwungenen Berechtigungen . Wenn Sie ein ext2-Dateisystem unter DOS bereitstellen, werden die ext2-Berechtigungen nicht erzwungen. Wenn Sie dagegen unter Linux auf ein FAT-Dateisystem zugreifen, haben alle Dateien die gleichen Berechtigungen.
Aufeinanderfolgende Windows-Versionen bieten Unterstützung für weitere Berechtigungstypen. Das NTFS-Dateisystem wurde erweitert, um diese zusätzlichen Berechtigungen zu speichern. Wenn Sie auf ein Dateisystem mit den neueren Berechtigungen eines älteren Betriebssystems zugreifen, kennt das Betriebssystem diese neueren Berechtigungen nicht und erzwingt sie daher nicht. Wenn Sie dagegen mit einem neueren Betriebssystem auf ein älteres Dateisystem zugreifen, enthält es keine neuen Berechtigungen, und es ist Sache des Betriebssystems, sinnvolle Fallbacks bereitzustellen.