Kompatibilität

Da der Linux-Kernel alle Zugriffe auf eine Datei überwacht, kommen alle herkömmlichen Programme mit den erweiterten Dateirechten klar. Anders sieht es bei Anwendungen aus, die Dateirechte manipulieren, wie beispielsweise Konqueror oder Nautilus. Erst genannter kann mit ACLs seit Version 3.5 umgehen (wie Abbildung 1 beweist), Nautilus ab 2.16. Die Standard-Unix-Kommandos wie »cp« oder »mv« sind bereits an die ACLs angepasst. Das verlustlose Kopieren oder Verschieben klappt allerdings nur dann, wenn das Ziel-Dateisystem ACLs versteht. Andernfalls bleiben nur die einfachen, herkömmlichen Dateirechte übrig.

Abbildung 1: Im KDE-Konqueror führt der Button

Programme, die noch nicht auf ACLs umgestellt wurde, ändern lediglich die Standardrechte. Das zeigt sich, wenn es an ein Backup geht. So sichert das bekannte »tar« ACLs nicht mit. Hier muss man auf Alternativen, wie beispielsweise den »star tape archiver« (kurz »star« ) zurückgreifen, der auch vielen Distributionen beiliegt. Ein

star H=pax -acl -c -f backup.pax ↩
<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Verzeichnis
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
/

erstellt ( »-c« ) das Archiv ( »-f« ) »backup.pax« , in das alles aus dem Verzeichnis »projektordner« landet. Als Dateiformat kommt PAX zum Einsatz. Der Befehl

star -acl -xp -acl -f backup.pax

packt schließlich das gerade geschürte Paket wieder aus.

Per Hand

Wer nicht auf solch exotische Formate setzen möchte, kann auch zu einem kleinen Trick greifen: »setfacl« liest seine Parameter auf Wunsch auch aus einer Textdatei. Dessen Format stimmt exakt mit der Ausgabe von »getfacl« überein. Es liegt also nahe, einfach per »getfacl« alle ACLs in eine Textdatei zu sichern und diese dann später bei der Rücksicherung »setfacl« zur Wiederherstellung zu übergeben. Zunächst wandern also die ACL-Ausgaben von »getfacl« in eine Textdatei:

getfacl -R --skip-base ↩
<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Verzeichnis
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
/ > /backup.acl

Damit wechselt »getfacl« in das Verzeichnis und schiebt die ACLs aller darin gefundenen Objekte in die Datei »backup.acl« . Der Parameter »-R« sorgt für den rekursiven Abstieg. Die Datei lässt sich jetzt zusammen mit dem eigentlichen Verzeichnisinhalt über ein beliebiges Packprogramm sichern. Für die Wiederherstellung der ACLs sorgt dann »setfacl« :

setfacl --restore=backup.acl

Gesammelter Eintritt

Bei der Erstellung sehr umfangreicher ACLs muss man »setfacl« mehrfach aufrufen, was recht mühsam und unübersichtlich ist. Gut, dass der Admin die Einträge auch in einer Textdatei ablegen darf, deren Inhalt der Ausgabe von »getfacl« entspricht. Diese übergibt er dann »setfacl« mit dessen Parameter »--set-file="datei.txt"« . Verwendet er anstelle des Dateinamens ein »-« , liest das Werkzeug die Parameter von der Standardeingabe. Damit lässt sich beispielsweise eine ACL von einer Datei auf eine andere stülpen:

getfacl 
<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Datei1
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
 | setfacl --set-file=- 
<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Datei2
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
comments powered by Disqus
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 /2023