Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Access Control List

Eine ACL legt fest, in welchem Umfang einzelne Benutzer und Systemprozesse Zugriff auf bestimmte Objekte (wie Dienste, Dateien, Registrier-Einträge usw.) haben.

Inhalt5 Abschnitte
  1. 1. Grundidee und Nutzen
  2. 2. ACLs in Multics
  3. 3. Unix- und Linux-ACLs
  4. 4. Windows-ACLs
  5. 5. Weitere Einsatzbereiche

Grundidee und Nutzen

Eine Access Control List (ACL, englisch für Zugriffssteuerungsliste, ZSL) ist eine Software-Technik zur Zugriffssteuerung. Betriebssysteme und Anwendungsprogramme können damit Zugriffe auf Daten und Funktionen begrenzen. Eine ACL bestimmt für einzelne Benutzer und Systemprozesse, in welchem Umfang sie bestimmte Objekte verwenden dürfen. Solche Objekte können beispielsweise Dienste, Dateien oder Registrier-Einträge sein.

ACLs erlauben eine feinere Rechtevergabe als einfache Zugriffsrechte. Für dieselbe Datei können mehreren Benutzern und mehreren Gruppen jeweils unterschiedliche Rechte erteilt werden. Das klassische Unix-Modell einfacher Rechte unterscheidet dagegen nur Besitzer, eine Gruppe und den „Rest der Welt“.

ACLs in Multics

Bei der Entwicklung des Betriebssystems Multics wurden ACLs 1965 erstmals im Multics-Dateisystem implementiert. Sie sollten Rechte nach dem Prinzip Least Privilege ermöglichen: Jeder Benutzer oder Prozess erhält nur die Berechtigungen, die für seine Aufgabe nötig sind.

Damit lässt sich beispielsweise der Zugriff zunächst für die gesamte Benutzer-Gemeinschaft sperren, einer bestimmten Gruppe nur Lesen erlauben und einer zweiten Gruppe Lesen und Schreiben geben. Das in der Quelle gezeigte ACL-Beispiel lautet:

• „rew Max.Wikipedianer.“: Max aus der Gruppe Wikipedianer besitzt die konkrete Datei und darf lesen, schreiben und ausführen. • „r Backup.SysDaemon.“: Backup aus der Gruppe SysDaemon darf nur lesen. Das reicht für einen Daemon, der im Hintergrund wiederkehrende Datensicherungen ausführt. • „r .Wikipedianer.“: Mitglieder der Gruppe Wikipedianer dürfen lesen. • „rw .SysAdmin.“: Mitglieder der Gruppe SysAdmin dürfen lesen und schreiben.

Mit Standard-Unix-Dateirechten wäre diese Kombination nicht vollständig möglich: Max und der Gruppe Wikipedianer könnten Rechte gegeben werden, nicht aber gleichzeitig dem Backup-Prozess ausschließlich Lesen und der SysAdmin-Gruppe Lesen und Schreiben.

Unix- und Linux-ACLs

In der Unix-Welt sind ACLs, auch „POSIX ACLs“ genannt, eine Erweiterung der klassischen Zugriffssteuerung nach dem Besitzer-Gruppe-Welt-Modell. Sie ermöglichen, Rechte gezielt einzelnen Benutzern zu erteilen oder zu verbieten. Viele Unix-Implementierungen, darunter Solaris, IRIX und HP-UX, führten Anfang bis Mitte der 1990er Jahre ähnliche ACL-Modelle ein. Eine Standardisierung als POSIX-1003.1e wurde versucht, doch der zugehörige Normen-Entwurf wurde im Oktober 1997 zurückgezogen.

Mitte 2000 begann die Implementierung von POSIX-1003.1e ACLs in FreeBSD und Linux. Native Unterstützung bieten unter anderem AIX, HP-UX, Linux, FreeBSD, TrustedBSD, Solaris, Trusted Solaris und IRIX. Unter Linux unterstützen Btrfs, ext-fs (ext2/3/4), JFS, XFS und ReiserFS diese ACLs vollständig. Auf der Kommandozeile werden sie typischerweise mit „getfacl“ angezeigt und mit „setfacl“ verwaltet. Konqueror unterstützt sie ab KDE 3.5, Nautilus ab Version 2.16.

Linux-ACLs nach POSIX-1003.1e werden statisch vererbt: Berechtigungen können sich bei neu angelegten Unterverzeichnissen und Dateien fortpflanzen. Eine spätere Änderung der ACL eines übergeordneten Verzeichnisses verändert die bereits darunterliegende Struktur jedoch nicht.

RFC 3010 führte im Dezember 2000 mit NFSv4 einen neuen ACL-Standard ein, der auf dem ACL-System von NFS beruht. Solaris, AIX und macOS unterstützen ihn mittlerweile; ZFS unterstützt ausschließlich NFSv4 ACLs.

Windows-ACLs

Unter Windows NT 4.0 ist jedem Betriebssystemobjekt, etwa einer Datei oder einem Prozess, ein Zugriffskontroll-Deskriptor zugeordnet. Dieser kann eine ACL enthalten. Fehlt die ACL, erhält jeder Benutzer Vollzugriff auf das Objekt. Ist sie vorhanden, aber leer, erhält kein Benutzer Zugriff.

Eine Windows-ACL besteht aus einem Header und höchstens 1820 Access Control Entries (ACE). Ein ACE legt für einen Benutzer oder eine Benutzergruppe fest, ob eine bestimmte Zugriffsart erlaubt („allow“) oder verweigert („deny“) wird. Der Windows-Explorer schreibt verweigernde Einträge an den Anfang der ACL. Bei einer Zugriffsanforderung arbeitet der Windows Object Manager die Liste von vorn ab. Sobald Einträge für alle angeforderten Rechte gefunden sind, wird der Zugriff erlaubt oder verweigert. Trifft er auf einen verweigernden Eintrag, bricht er die Suche ab und verweigert den Zugriff.

Von Windows NT bis Version 4.0 wurden ACLs statisch vererbt. Ab Windows 2000 ist auf Wunsch dynamische Vererbung möglich; Änderungen an der ACL eines übergeordneten Verzeichnisses können dann je nach gewählter Vererbung die darunterliegende Verzeichnisstruktur beeinflussen. Zum Anzeigen und Ändern gab es ab Windows NT 3.5 den von Cmd unabhängigen Befehl „cacls(.exe)“. Windows Server 2003 ergänzte ihn durch „icacls(.exe)“ und bezeichnete cacls als veraltet. „xcacls“, ab Windows 2000 wahlweise in Support Tools und Resource Kit enthalten, kann außerdem den Besitzer einer Datei oder eines Ordners ändern.

Weitere Einsatzbereiche

macOS unterstützt ACLs ab Mac OS X Tiger (10.4, 2005). OpenVMS von HP, ursprünglich DEC, verwendet ebenfalls ACLs; ihre Einträge heißen dort ACE.

Bei Cisco IOS kann ACL unter anderem Paketfiltereinstellungen bezeichnen. Webanwendungen nutzen ACLs, um einzelne Seiten oder Bereiche auf bestimmte Benutzer oder Gruppen zu beschränken, etwa Wikis wie DokuWiki und Content-Management-Systeme wie eZ Publish. SAP verwendet ACLs zur detaillierten Benutzerberechtigung, beispielsweise in cFolders beziehungsweise cProjects und SAP Easy Document Management. In LDAP-Verzeichnissen kann eine ACL – abhängig vom Hersteller – Zugriff auf Attribute oder LDAP-Container zulassen oder verweigern.

Weiterlesen

Amerikanisches Englisch Amerikanisches Englisch (englisch American English [əˈmɛɹɪkən ˈɪŋɡlɪʃ], kurz AE oder AmE) ist die Standardvarietät der englischen Sprache, die in den … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Betriebssystem Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start … Prozess (Informatik) Ein Prozess ist die Ablaufumgebung für ein Programm auf einem Rechnersystem sowie der darin eingebettete Binärcode des Programmes während der Ausführung. Ein … Datei Eine Datei (englisch file) ist in der Informationstechnologie die Zusammenstellung gleichartiger digitaler Daten, die zum Speichern auf Datenträgern oder … Datensicherung Die Datensicherung ist eine grundlegende Maßnahme für Datensicherheit. Die auf einem Speichermedium gesicherten Daten werden als Sicherungskopie (oder Back … ZFS (Dateisystem) ZFS ist ein von Sun Microsystems entwickeltes transaktionales Dateisystem, das zahlreiche Erweiterungen für die Verwendung im Server- und … Verzeichnisstruktur Als Verzeichnisstruktur (auch Verzeichnisbaum oder Ordnerstruktur) wird im engeren Sinn die hierarchische Gestalt des gesamten Dateisystems eines einzelnen … Paketfilter Ein Paketfilter, auch Netzwerkfilter genannt, ist eine Anwendung oder Software, die den ein- und ausgehenden Datenverkehr in einem Rechnernetz filtert. Webanwendung Webanwendung. Anwendungsprogramm nach dem Client-Server-Modell. Artikel ... Im Gegensatz zu herkömmlichen Desktop-Anwendungen ist keine weitere Installation von … Content-Management-System Ein Content-Management-System (kurz CMS, deutsch Inhaltsverwaltungssystem) ist eine Software oder ein Service zur gemeinschaftlichen Erstellung, Bearbeitung … Role Based Access Control Role Based Access Control (RBAC; deutsch: Rollenbasierte Zugriffskontrolle) ist in Mehrbenutzersystemen oder Rechnernetzen ein Verfahren sowie ein …