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.
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.
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) -->