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.
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.
macOS unterstützt des weiteren gewisse spezielle Berechtigungseinstellungen. Sie sind auf den meisten anderen UNIX-Systemen ebenso vorhanden.
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:
Zugriffssteuerungslisten erlauben die Definition von 13 einzelnen Zugriffsrechten auf ein Dateisystemobjekt:
Diese Rechte können in jeder beliebigen Weise miteinander kombiniert werden.
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.
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.
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:
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.
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.
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:
Ü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.
In Fällen, in denen ACL-Rechte oder sogar Berechtigungen im Allgemeinen nicht für das ausgewählte Objekt unterstützt werden, erscheint eine rote Warnung unter der Box Datei oder Ordner, zusammen mit einem Fragezeichen-Hilfeknopf. Sie können diesen Knopf drücken, um detaillierte Hinweise darüber zu erhalten, warum es Probleme beim Abrufen oder Ändern von Rechten auf dem betroffenen Volume geben könnte.
Es kann niemals ein Dateisystemobjekt ohne Berechtigungseinstellungen geben, weshalb macOS automatisch die Rechte anderer Systeme in „plausible“ Berechtigungen für das lokale System umwandelt, falls das nötig sein sollte, oder künstliche Rechte vollständig neu erzeugt, ohne dass diese tatsächlich auf dem Volume gespeichert werden. TinkerTool System zeigt in einem solchen Fall die wirksamen Rechte an, die das System für Ihren derzeitigen Benutzer-Account simuliert. Sie sollten aber im Auge behalten, dass Prozesse, die für andere Benutzer laufen, möglicherweise andere Einstellungswerte erhalten. Es ist auch möglich, solche künstlichen Berechtigungen zu ändern und abzuspeichern, aber macOS wird diese für das betreffende Volume beim Anwenden „zurückübersetzen“, so dass das Ergebnis vielleicht nicht mit dem übereinstimmt, was Sie erwarten. Wir empfehlen es nicht, neue Berechtigungseinstellungen in Fällen anzuwenden, in denen TinkerTool System eine Unterstützungswarnung anzeigt.
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.
Um den Benutzer oder die Gruppe eines Eintrags zu ändern, führen Sie die folgenden Schritte durch:
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.
Sie müssen möglicherweise einen Benutzer oder eine Gruppe auswählen, wenn Sie Änderungen an Zugriffsrechten vornehmen. TinkerTool System verwendet in diesem Zusammenhang mehrere Arten von Dialogfenstern, in denen Sie leicht einen Eintrag aus einer Liste von Accounts auswählen können, die auf Ihrem Computer verfügbar sind.
In großen Organisationen kann die Liste der Accounts sehr lang sein. In einigen Fällen ist sie vielleicht nicht alleine auf dem lokalen Computer gespeichert, sondern auch auf anderen Computern (Verzeichnisdienstservern) in Ihrem Netz, die erst kontaktiert werden müssen. Aus Effizienzgründen zeigt TinkerTool System möglicherweise nicht die vollständige Liste der Accounts, wenn Sie einen Benutzer- oder Gruppendialog das erste Mal öffnen. Die Liste kann auf diejenigen Accounts beschränkt sein, die irgendwo im Betriebssystem benötigt wurden, seitdem der Computer gestartet ist. Um die volle Account-Liste abzurufen, betätigen Sie den Knopf Alle Einträge holen in der linken unteren Ecke des Fensters. Dies stellt sicher, dass die Liste der Benutzer oder Gruppen vollständig ist.
Das Abrufen aller Einträge kann eine erhebliche Zeit in Anspruch nehmen, besonders in Umgebungen mit Verzeichnisdienstservern.
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:
Es gibt eine zusätzliche Wahlmöglichkeit beim Übertragen von Zugriffssteuerungslisten: Es ist entweder möglich, die existierende Zugriffssteuerungsliste des obersten Orders zu kopieren so wie sie ist, oder TinkerTool System im Nachhinein Vererbung simulieren zu lassen. Im letzteren Fall können die Vererbungsattribute des obersten Ordners dazu führen, dass das Ergebnis unterschiedlich ist. Wenn im obersten Ordner beispielsweise die Option auf alle Unterordnerebenen anwenden für eine bestimmte ACE nicht eingeschaltet ist, wird die Vererbung dieser ACE nach der obersten Ebene stoppen.
Eine andere Wahlmöglichkeit steuert, wie TinkerTool System mit Objekten umgehen soll, bei denen das Attribut „geschützt“ gesetzt ist. Das Standardverhalten von macOS ist es, das Übertragen zu stoppen und den laufenden Vorgang mit einer Fehlermeldung abzubrechen sobald ein solches Objekt gefunden wird, denn macOS erlaubt es nicht, die Berechtigungseinstellungen eines geschützten Objekts zu ändern. Die Richtlinie, den Vorgang anzuhalten, stellt sicher, dass es keine unerkannten Sicherheitsprobleme geben kann, die auftreten könnten, wenn die Zugriffsrechte für ein geschütztes Objekt unerwartet unverändert bleiben. Möglicherweise möchten Sie aber solche Fälle ignorieren und den Vorgang stillschweigend fortsetzen, was das Verhalten alter Versionen von macOS Server war.
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. Zugriffssteuerungslisten werden nicht auf symbolische Links übertragen, da macOS dies nicht unterstützt.
Falls Sie sicherstellen möchten, dass kein Objekt beim Übertragen von Berechtigungen ausgelassen wird, ist es empfehlenswert, alle Schutzattribute vor dem Übertragen zu entfernen. Sie können dies mit der Funktion Schutz auf der Karte Ablage tun.
Der Übertragungsvorgang wird automatisch auf das Volume beschränkt, auf dem der oberste Ordner liegt.
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.
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:
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:
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.
Jeder Benutzer- und Gruppen-Account ist ein Datensatz, der von macOS verwaltet wird, und der die Daten von Personen enthält, die bestimmte Rechte für den Zugriff auf gewisse Informationen haben. Je nach den Umständen kann das Betriebssystem verschiedene Darstellungen verwenden, um Bezug auf einen Account zu nehmen:
Falls Sie eine dieser vier Bezeichnungen angeben, kann Ihnen TinkerTool System dabei helfen, die anderen drei Punkte herauszufinden. Dies kann zum Beispiel dann hilfreich sein, wenn das Betriebssystem in einer internen Protokollmeldung auf ein „Problem mit Benutzer 502“ hinweist und Sie herausfinden müssen, um welchen Benutzer es sich dabei handelt.
Eine übereinstimmende Identifikation kann manchmal sowohl für einen Benutzer als auch für eine Gruppe verwendet werden, auch wenn es sich dabei um völlig verschiedene Objekte handelt. Deshalb müssen Sie angeben, nach welcher Art von Account Sie suchen. Für UUIDs ist dies allerdings nicht nötig, da diese ja grundsätzlich einzigartig sind. Accounts sind möglicherweise nicht nur auf Ihrem Mac gespeichert, sondern Ihr Netzwerk könnte eine oder mehrere Datenbanken für Accounts bereitstellen, die für alle Computer im Netz gelten. Ein Server, der solch eine zentrale Account-Datenbank beherbergt, stellt einen sogenannten Verzeichnisdienst zur Verfügung.
Das Ergebnis der Suche wird in der Box Ergebnis angezeigt.