Minimal

Mit diesem Wissen im Hinterkopf geht es nun an die Definition der ACLs. Eine solche Zugriffssteuerungsliste, wie die etwas sperrige deutsche Übersetzung lautet, kann man sich wie einen Zettel vorstellen. Auf diesem notiert man untereinander alle weiteren Zugriffsberechtigten nebst ihren jeweiligen Rechten. Linux tackert dann das Ergebnis an die Datei und beachtet fortan die darauf stehenden Vorgaben.

Wie normalerweise empfohlen, prüft Alice zunächst, welche Zugriffsrechte bereits für ihren Kalender vergeben sind. Dies erledigt »getfacl« , das die ACL für eine Datei ausspuckt. Da sie Bob noch nicht hinzugefügt hat, müsste die Liste noch leer sein:

$ getfacl kalender.cal
# file: kalender.cal
# owner: alice
# group: ateam
user::rw-
group::r--
other::r--

Für eine eigentlich leere Liste sind das ganz schön viele Einträge: Zunächst nennt »getfacl« in den ersten drei Zeilen noch einmal den Dateinamen, den Besitzer der Datei (Owner) und die Gruppe, der die Datei angehört (Group).

Alle nachfolgenden Zeilen enthalten jeweils genau einen Eintrag der ACL, einen so genannten Access Control Entry (ACE). Um abwärtskompatibel zum alten Rechtesystem zu bleiben, bildet die ACL automatisch die bestehenden Rechte auf entsprechende Einträge in ihrer Liste ab – was wiederum zu den drei nachfolgenden Zeilen des obigen Beispiels führt: Der erste zeigt die Zugriffsrechte des Besitzers, der zweite der Gruppe und der dritte für alle anderen. Die Einträge entsprechen also genau dem, was »ls -l« ausspuckt. Da sie also in jeder ACL vorhanden sind, heißen sie auch minimale ACL. Sobald ein weiterer Eintrag hinzukommt, spricht man von einer erweiterten (extended) ACL.

Setzen!

Um nun Bob den Zugriff auf ihren Kalender zu gewähren, muss Alice für ihn einen weiteren Eintrag in dieser ACL anlegen. Darum kümmert sich das Werkzeug »setfacl« :

setfacl -m user:bob:rw- kalender.cal

Die Parameter erscheinen nur auf den ersten Blick kryptisch: Der obige Befehl legt einen neuen Eintrag ( »-m« ) in der ACL der Datei »kalender.cal« an. Zugriff soll dabei ein einzelner Benutzer ( »user« ) mit dem Namen »bob« erhalten. Er darf die Datei lesen und in sie schreiben, aber nicht ausführen ( »rw-« ). Das Ergebnis in der Liste zeigt wieder »getfacl« :

$ getfacl kalender.cal
# file: kalender.cal
# owner: alice
# group: ateam
user::rw-
user:bob:rw-
group::r--
mask::rw--
other::r--

Jeder Eintrag einer ACL ist nach dem gleichen Schema aufgebaut: Vorne steht der so genannte Typ. Er legt fest, für wen die nachfolgenden Rechte gelten. Dies kann beispielsweise ein Benutzer ( »user« ) oder eine ganze Gruppe ( »group« ) sein. Nach einem Doppelpunkt folgt ein Bezeichner. Das ist der Name des Benutzers oder der Gruppe, zu dem der Eintrag gehört. In allen Fällen, in denen man diesen Namen nicht benötigt, lässt man ihn einfach unter den Tisch fallen – wie beispielsweise bei den Einträgen für die Standard-Rechte. Den Abschluss einer Zeile bildet wieder das bekannte Rechtetripel.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2022