Start

Die Einstellungskarte ACL-Rechte

Einführung in Berechtigungen

Jede Datei und jeder Ordner, die über Ihren Computer zugänglich sind, sind mit einer bestimmten Menge von Rechten verbunden, die festlegen, welche Benutzer welche Vorgänge mit diesen Objekten vornehmen dürfen, z.B. den Inhalt einer Datei zu lesen, oder eine Datei aus einem Ordner zu entfernen. Diese Menge von Rechten, die mit einem Dateisystemobjekt verbunden sind, werden Berechtigungen oder Zugriffsrechte genannt. macOS verwendet sowohl die klassischen Berechtigungen, die auf jedem UNIX-System zu finden sind, die sogenannten POSIX-Berechtigungen, als auch eine erweiterte Menge von berechtigungsähnlichen Markierungen, die sogenannten Speziellen Rechte und eine fortgeschrittene Menge von Rechtedefinitionen, die von Microsoft® Windows, den meisten modernen UNIX-Systemen und vielen anderen Betriebssystemen verwendet werden, nämlich Zugriffssteuerungslisten, nach dem englischen Fachbegriff Access Control Lists auch ACLs abgekürzt. ACLs werden auch POSIX.1e-Berechtigungen genannt, da sie sich ähnlich zu einem Normentwurf mit dem Namen POSIX.1e verhalten, der ursprünglich dazu geplant war, eines Tages zum industrieweiten Standard für Berechtigungen zu werden. Die 1e-Dokumente sind allerdings aus verschiedenen Gründen offiziell zurückgezogen worden, so dass es eigentlich keine Norm mit diesem Namen gibt. Trotzdem enthält der 1e-Entwurf sehr gute Ideen, so dass Berechtigungen, die den Absichten von 1e sehr ähnlich sind, heute in den meisten Betriebssystemen vorhanden sind. Es sollte allerdings in Erinnerung bleiben, dass sich die genaue Bedeutung von ACL-Berechtigungen zwischen verschiedenen Betriebssystemanbietern leicht unterscheiden kann.

POSIX-Berechtigungen

Die minimale Menge von Berechtigungsdefinitionen, die auf allen UNIX-Systemen und vielen anderen Betriebssystemen zum Einsatz kommt, die sich an die POSIX-Norm (IEEE 1003) halten, basiert auf drei vordefinierten „Parteien“, denen Rechte gewährt werden können:

Apple bezeichnet diese dritte Kategorie mit dem Begriff Jeder oder everyone. Leider ist diese Bezeichnung falsch, da diese Kategorie ausdrücklich nicht den Eigentümer und kein Mitglied der Primärgruppe einschließt. Falls Sie über den Finder „Jedem“ ein Recht gewähren oder verweigern, sind diese Benutzer nicht eingeschlossen, was nicht unbedingt der Bedeutung des Begriffs „Jedem“ entspricht. Aus diesem Grund verwendet TinkerTool System nur die korrekte Bezeichnung „Andere“.

Für jede der drei Kategorien können die folgenden Zugriffsrechte gewährt werden:

Falls eines dieser Rechte einem Benutzer nicht ausdrücklich erteilt wird, bedeutet das, dass dieser Benutzer keine Erlaubnis für einen Zugriff hat. Das Recht wird verweigert, obwohl in diesem Modell keine ausdrücklichen Verbote vorgesehen sind.

Standardmäßig legen Programme Dateien mit den folgenden Berechtigungseinstellungen an:

Programme können bestimmten Dateien weniger Rechte gewähren, wenn sie dazu programmiert sind, sich so zu verhalten. Beispielsweise ist ein E-Mail-Programm so konstruiert, dass es „weiß“, dass ein neues Mail-Postfach vertraulich behandelt werden sollte, so dass es keine Berechtigungen für eine Gruppe oder Andere erteilt, wenn es einen Postfachordner anlegt. Nur der Eigentümer sollte in diesem Fall Lese- und Schreibrecht haben.

Zusätzliche Berechtigungsmarkierungen

macOS unterstützt des weiteren gewisse spezielle Berechtigungseinstellungen. Sie sind auf den meisten anderen UNIX-Systemen ebenso vorhanden.

Zugriffssteuerungslisten

Einführung in Zugriffssteuerungslisten

Zugriffssteuerungslisten, auf Englisch Access Control Lists oder kurz ACLs, sind eine Ergänzung zu den vorhandenen POSIX-Berechtigungen, d.h. man muss ACLs nicht unbedingt nutzen, wenn man diese nicht braucht. Die althergebrachten Regeln für Zugriffsrechte, die oben skizziert wurden, gelten auch weiterhin, nur einige Zusatzregeln können auf Wunsch hinzugefügt werden.

Technisch gesehen ist eine Zugriffssteuerungsliste eine Liste einzelner Zugriffsrechte, die an ein Dateisystemobjekt angeknüpft werden kann. Die ACL kann entweder leer sein — in diesem Fall gelten nur die herkömmlichen POSIX-Rechte — oder sie kann ein oder mehrere Objekte enthalten, die Zugriffssteuerungseinträge (Access Control Entries oder ACEs) genannt werden. Ein Zugriffssteuerungseintrag gibt Auskunft über die folgenden Aspekte:

ACL-Rechte

Zugriffssteuerungslisten erlauben die Definition von 13 einzelnen Zugriffsrechten auf ein Dateisystemobjekt:

Diese Rechte können in jeder beliebigen Weise miteinander kombiniert werden.

ACL-Vererbungseinstellungen

Jeder Zugriffssteuerungseintrag kann zusätzliche Informationen darüber enthalten, wie dieser Eintrag an Objekte tiefer in der Dateisystemhierarchie vererbt werden soll, z.B. an eine Datei in einem Ordner, der in einem anderen Ordner liegt. Der Ordner an der Spitze kann mit einer Zugriffssteuerungsliste ausgestattet sein, die automatisch an Objekte in diesem Ordner vererbt wird.

Vererbung findet nur dann statt, wenn Objekte neu angelegt werden. Wenn zum Beispiel eine Datei B in einem Ordner A angelegt wird, dann erbt die Datei B nur in diesem Moment Zugriffssteuerungseinträge von A. Wenn jemand die Berechtigungen für B zu einem späteren Zeitpunkt ändert, wird das System nicht automatisch eine erneute Vererbung von A an B erzwingen. Auch eine Änderung der Zugriffssteuerungseinträge von Ordner A wird nicht an das bereits existierende Objekt B „wiedervererbt“.

Es gibt 4 verschiedene Einstellungen, die steuern, wie die Rechte von Zugriffssteuerungslisten vererbt werden:

Es gibt 16 mögliche Kombinationen dieser Einstellungen, von denen aber nur 12 in der Praxis wirklich sinnvoll sind.

Geerbte und explizite Einträge

Da Einstellungen in Zugriffssteuerungseinträgen von Ordner auf Objekte, die in ihnen enthalten sind, vererbt werden können, muss das System nachverfolgen, welche Zugriffssteuerungseinträge in einer Zugriffssteuerungsliste vererbt worden sind und welche nicht. Nur Zugriffssteuerungseinträge, die nicht geerbt wurden, können geändert werden. Nicht geerbte Einträge werden explizite Einträge genannt. Um einen geerbten Eintrag zu ändern, ist es entweder nötig, den Eintrag auf derjenigen Elternebene zu ändern, von der aus er vererbt worden ist, oder die Zugriffssteuerungsliste für dieses Objekt zu löschen (und damit die Vererbung zu unterbrechen), und danach die vererbten Einträge durch explizite zu ersetzen.

Die Auswertungsregeln für Zugriffssteuerungseinträge

Wie schon erwähnt besteht eine Zugriffssteuerungsliste aus einer Reihe von Zugriffssteuerungseinträgen. Gewisse Regeln legen fest, wie macOS diese Einträge auswertet, wenn ein bestimmter Benutzer auf ein Objekt im Dateisystem zugreifen möchte. Beachten Sie, dass Zugriffssteuerungseinträge sich auch widersprechen können. Wenn Benutzer A beispielsweise auf Datei B zugreifen darf, aber A gleichzeitig Mitglied einer Benutzergruppe ist, der der Zugriff auf die Datei B verweigert wird, liegt ein Widerspruch vor, der aufgelöst werden muss. Es gelten die folgenden Regeln:

Wichtige Empfehlungen

Zugriffssteuerungslisten sind ein leistungsfähiges Werkzeug, um bestimmte Berechtigungen fein gegliedert vergeben zu können. Sie sollten allerdings im Auge behalten, dass Zugriffssteuerungslisten sehr komplex sind.

Es gibt 13 unterschiedliche Rechte, die gewährt oder verweigert werden können und 12 verschiedene Arten, die Vererbung zu definieren. Daraus ergibt sich eine Summe von 2^13 * 12 = 98.304 unterschiedlichen Begriffen von Zugriffsrechten, die Sie definieren können.

Jedes dieser fast 100.000 Zugriffsrechte kann auf einen Benutzer oder eine Benutzergruppe angewandt werden, um daraus einen Zugriffssteuerungseintrag zu erstellen und eine fast unbegrenzte Anzahl von Zugriffssteuerungseinträgen kann zu einer Zugriffssteuerungsliste zusammengestellt werden. Jeder Datei und jedem Ordner Ihres Systems kann eine unterschiedliche Zugriffssteuerungsliste zugewiesen werden, so dass die Wartung aller dieser Einträge leicht in einem Albtraum enden kann. Aus diesem Grund sollten Sie bei Verwendung von Zugriffssteuerungslisten nur mit größter Sorgfalt arbeiten.

Dateisysteme, die Zugriffssteuerungslisten unterstützen

Zugriffssteuerungslisten können nur auf Dateisystemen verwendet werden, die sie auch speichern können. macOS erlaubt die Verwendung von ACLs auf den folgenden Dateisystemen, unter der Voraussetzung, dass die Computer, die diese Dateisysteme beherbergen, eine Betriebssystemversion einsetzen, die generell mit ACLs umgehen kann:

Andere Dateisysteme, einschließlich Platten-Volumes, die unter Verwendung von UFS, FAT, VFAT, FAT32, ExFAT, NTFS oder ZFS formatiert wurden, oder Netz-Volumes, auf die mit NFSv2, NFSv3, FTP oder WebDAV zugegriffen wird, können Zugriffssteuerungslisten nicht unterstützen. Über eine Dateiserver-Verbindung hinweg ACLs nicht unterstützen zu können, bedeutet, dass der Client-Computer die auf dem Server gespeicherten ACLs nicht „sehen“ oder ändern kann. Wenn der Server jedoch in der Lage ist, ACLs auf seiner Seite zu verwenden, wird er diese beachten, egal ob der zugreifende Computer dies bemerkt oder nicht.

Zugriffsrechte zeigen oder einstellen

Anzeigen von Berechtigungen

TinkerTool System kann die vollständige Menge von POSIX- und ACL-Zugriffsrechten anzeigen, die zurzeit für eine bestimmte Datei oder einen bestimmten Ordner eingestellt sind. Die Berechtigungen werden in einer übersichtlichen Tabelle angezeigt, in der die Einträge in der Reihenfolge angeordnet sind, wie sie auch zur Bestimmung der Wirksamkeit vom System ausgewertet werden. Die Tabelle wird auch dazu verwendet, die Berechtigungseinstellungen zu ändern.

Der Finder von macOS ist nicht in der Lage, die „wahren“ Berechtigungseinstellungen eines Dateisystemobjekts zu zeigen. Aufgrund mehrerer Konstruktionsfehler wird im Abschnitt Freigabe & Zugriffsrechte des Dialogfensters Informationen des Finders nur eine sehr vereinfachte oder sogar falsche Zusammenfassung der Berechtigungseinstellungen gezeigt. TinkerTool System zeigt dagegen die wahren Einstellungen an, wie sie vom Kernbetriebssystem definiert und gespeichert werden. Aus diesem Grund können einige Berechtigungsdetails sich bei der Anzeige in beiden Programmen voneinander unterscheiden. In solch einem Fall sollten Sie der Anzeige des Finders nicht trauen.

Um die aktuellen Berechtigungseinstellungen eines Dateisystemobjekts anzuzeigen oder zu ändern, führen Sie die folgenden Schritte durch:

  1. Öffnen Sie den Karteireiter Zugriffsrechte zeigen oder einstellen auf der Einstellungskarte ACL-Rechte.
  2. Ziehen Sie eine Datei oder einen Ordner aus dem Finder in das Feld Datei oder Ordner. Sie können auch den Knopf […] drücken, um zum Objekt zu navigieren oder auf die weiße Fläche klicken und den UNIX-Pfad des Objektes eingeben.
  3. Die aktuellen Einstellungen werden in der Tabelle angezeigt.
Zugriffsrechte zeigen oder einstellen
Zugriffsrechte zeigen oder einstellen

Überschriftenzeilen in der Tabelle geben an, welche Rechte ACEs einer ACL darstellen und welche auf konventionellen POSIX-Einstellungen beruhen. Die Spalten enthalten die folgenden Informationen:

Falls eine Berechtigung als Eigene angezeigt wird, bedeutet das, dass sich die Rechte nicht mit einfachen Worten wie Nur Lesen beschreiben lassen. Erinnern Sie sich daran, dass es 98.304 verschiedene Begriffe von Berechtigungen geben kann, die sich durch Kombination von ACL-Rechten definieren lassen. Um die 13 Detailrechte und 4 Vererbungseinstellungen (für Ordner) genauer zu sehen, doppelklicken Sie auf eine Tabellenzeile. Sie können alternativ auch auf den Knopf mit dem Stiftsymbol unterhalb der Tabelle drücken.

Ändern von Berechtigungen

Nachdem Sie ein Objekt ausgewählt haben und TinkerTool System dessen Berechtigungseinstellungen in der Tabelle anzeigt, können alle Aspekte der Einstellungen geändert werden. Nachdem Sie alle gewünschten Änderungen vorgenommen haben, können Sie den Knopf Anwenden in der rechten unteren Ecke drücken, um die aktuellen Einstellungen abzuspeichern. Der Knopf Rückgängig verwirft dagegen alle Änderungen, die Sie gemacht haben und TinkerTool System kehrt wieder zu den ursprünglichen Einstellungen zurück, die für das in Frage kommende Objekt zurzeit gespeichert sind.

Falls Sie den Typ eines Eintrags ändern möchten oder das Zugriffsrecht auf eines der einfachen Standardkonzepte ändern möchten, können Sie dies über die Aufklappmenüs in den jeweiligen Tabellenspalten erreichen.

Berechtigungseinstellungen im Detail
Berechtigungseinstellungen im Detail

Um den Benutzer oder die Gruppe eines Eintrags zu ändern, führen Sie die folgenden Schritte durch:

  1. Doppelklicken Sie die entsprechende Zeile in der Tabelle oder wählen Sie die Zeile aus und drücken Sie den Knopf mit dem Stift.
  2. Drücken Sie im Detailfenster den Knopf Einstellen … am oberen Rand.
  3. Wählen Sie im neuen Dialogfenster entweder Benutzer oder Gruppen (falls zutreffend).
  4. Wählen Sie einen Benutzer oder eine Gruppe aus der Tabelle aus und drücken Sie den Knopf OK.
  5. Betätigen Sie im Detailfenster den Knopf Schließen.

Der Zugriffstyp und die Detailrechte können auf die gleiche Art und Weise geändert werden. Beachten Sie, dass das Detailfenster die Rechte und Vererbungseinstellungen in vier Kategorien gruppiert. Sie können alle Rechte einer Kategorie gleichzeitig ein- oder ausschalten, indem Sie das entsprechende Häkchen in der jeweiligen Gruppenüberschrift ändern. Alle Rechte einer ACE einzuschalten ist außerdem über den Punkt Vollzugriff im Klappmenü Zugriffsrecht möglich. Die Vererbungseinstellungen werden in diesem Fall auf Standardwerte gesetzt.

Um einen Zugriffssteuerungseintrag hinzuzufügen, drücken Sie den Knopf [+] unter der Tabelle. Um einen oder mehrere ACEs zu entfernen, verwenden Sie den Knopf [-]. Um eine ACL umzusortieren, ziehen Sie eine Zeile aus dem ACE-Bereich der Tabelle und legen diese an einer neuen Position ab. Beachten Sie, dass Objekte grundsätzlich wohldefinierte POSIX-Berechtigungen haben und dass POSIX-Berechtigungen immer in der vordefinierten Reihenfolge Benutzer-Gruppe-Andere ausgewertet werden, so dass es nicht möglich ist, Zeilen unterhalb der POSIX-Überschrift zu entfernen oder umzusortieren.

Zusätzliche Operationen

Zusätzliche Operationen können durchgeführt werden, indem Sie einen der Punkte im Klappmenü Operationen am unteren Rand des Fensters wählen. Die Punkte ändern sich, je nach dem, ob Sie eine Datei oder einen Ordner ausgewählt haben.

Falls Sie einen Ordner gewählt haben, können Sie:

Die zusätzliche Auswahlmöglichkeit Übertragene ACLs als vererbt markieren bringt TinkerTool System dazu, die „geerbt“-Markierung für alle Objekte auf allen Zugriffssteuerungslisten in der gewählten Ordnerhierarchie zu setzen. Auf diese Weise können Sie nachträglich Vererbung simulieren. Falls kein Häkchen gesetzt ist, werden die ACLs kopiert so wie sie sind. Das heißt, ACLs mit einer Vererbungsmarkierung im obersten Ordner werden ebenso als geerbte Zugriffssteuerungslisten in enthaltenen Objekten erscheinen, nachdem die Übertragung stattgefunden hat. ACLs ohne diese Markierung werden in diesem Fall als explizite Zugriffssteuerungslisten markiert.

Beim Übertragen von Berechtigungen in Ordnern, die symbolische Links enthalten, bearbeitet das Programm die Links selbst. Die Objekte, auf die die Links verweisen, bleiben unverändert. Ordner, auf die von einem Link verwiesen wird, werden nicht durchschritten.

Falls Sie eine Datei ausgewählt haben, können Sie:

Mit Ausnahme der Funktion zum Übertragen von Rechten, ändern alle Operationen zunächst nur den Inhalt der Berechtigungstabelle, nicht die eigentlichen Einstellungen auf der Platte. Die Änderungen werden wirksam, nachdem Sie den Knopf Anwenden gedrückt haben.

Wirksame Zugriffsrechte

Die Kombination zahlreicher Zugriffssteuerungseinträge und der POSIX-Berechtigungen kann es schwierig machen, abzuschätzen, wie die endgültigen Rechte eines bestimmten Benutzers sein werden. TinkerTool System kann die wirksam werdenden Rechte für einen Benutzer berechnen und anzeigen. Diese Funktion ist insbesondere dann nützlich, wenn Sie noch nicht viel Erfahrung mit Berechtigungseinstellungen haben. Um die wirksam werdenden Zugriffsrechte anzeigen zu lassen, führen Sie die folgenden Schritte durch:

  1. Öffnen Sie den Karteireiter Wirksame Zugriffsrechte auf der Einstellungskarte ACL-Rechte.
  2. Ziehen Sie eine Datei oder einen Ordner aus dem Finder in das Feld Datei oder Ordner. Sie können auch den Knopf […] drücken, um zum Objekt zu navigieren oder auf die weiße Fläche klicken und den UNIX-Pfad des Objektes eingeben.
  3. Drücken Sie den Knopf Auswählen …, um einen der bekannten Benutzer-Accounts des aktuellen Computers auszuwählen.
  4. TinkerTool System zeigt die Ergebnisse in der Tabelle unten an. Rechte, die diesem Benutzer gewährt werden, sind durch grüne Markierungen dargestellt, Rechte, die verweigert werden, über eine rote Markierung.
Wirksame Zugriffsrechte
Wirksame Zugriffsrechte

Spezielle Rechte

Die Menge der POSIX-Berechtigungen schließt die drei speziellen Einstellungen SUID, GUID und Sticky mit ein. Für deren Bedeutung ziehen Sie bitte die einführenden Abschnitte zu Beginn dieses Kapitels zu Rate. TinkerTool System kann jede der drei Einstellungen anzeigen und ändern. Führen Sie die folgenden Schritte durch:

Spezielle Rechte
Spezielle Rechte
  1. Öffnen Sie den Karteireiter Spezielle Rechte auf der Einstellungskarte ACL-Rechte.
  2. Ziehen Sie eine Datei oder einen Ordner aus dem Finder in das Feld Datei oder Ordner. Sie können auch den Knopf […] drücken, um zum Objekt zu navigieren oder auf die weiße Fläche klicken und den UNIX-Pfad des Objektes eingeben.
  3. Die aktuellen Einstellungen werden angezeigt. Sie können die Felder Eigentümer, Gruppeneigentümer, SUID, GUID und Sticky wie gewünscht verändern.
  4. Betätigen Sie den Knopf Anwenden, um die neuen Einstellungen zu speichern.

Attention Warnung: Wie in der Einführung erläutert, kann das Setzen der SUID- oder GUID-Markierungen sehr ernste Sicherheitsprobleme auslösen, die das gesamte Betriebssystem betreffen. Es sollte niemals notwendig sein, die SUID/GUID-Markierungen für Programme zu setzen, wenn dies deren Installationsprogramme nicht bereits getan haben. Das Entfernen der Marken kann zu Fehlfunktionen in den betreffenden Programmen führen. Sie sollten diese Funktion nur benutzen, wenn Sie genau wissen, was Sie tun.