Navigationsleiste   |    Direktzugriff   |    Artikel   |    Home   

Erweiterte Zugriffsrechte mit Access Control Lists unter ext2


ACHTUNG !!
Seit Version 0.8 gilt diese Anleitung zur Installation des Patches nicht mehr !!!!!
Die Installation läuft nun anders ab, bitte auf der Seite http://acl.bestbits.at nachsehen.
Ich habe leider keine Lust mehr diesen Artikeln abzudaten (XFS und JFS sind als Filesysteme besser).

Einen weiteren Tuxhausen-Artikel findest du hier: Erweiterte Zugriffsrechte mit Access Control Lists


Direkt eine Warnung: Dieser Artikel stellt schon erhöhte Ansprüchte, da der Eingriff dein System aushebeln kann. Du solltest also kein Einsteiger sein, sondern ein fortgeschrittener Admin. Was aber keinen davon abhalten soll diesen Artikel zu lesen, aber sei gewarnt und nimm erstmal ein Test-System und nicht den Firmen-Server ;-))


Was sind Access Control Lists ?

Am besten mal ein Beispiel: Angela arbeitet in der Buchhaltung der Firma tuxhausen an einer Urlaubsliste aller Mitarbeiter der Abteilung. Sie selber darf diese Liste bearbeiten, die Mitarbeiter der Abteilung dürfen diese Datei lesen, aber sonst keiner.
Dieser Fall ist mit den normalen Unix-Rechte (Besitzer, Gruppe und Sonstige) einfach einzustellen. Aber nun soll Claudia diese Liste bearbeiten, da Angela selber in Urlaub ist. Jetzt sieht es mit den Unix-Rechten schlecht aus: zwei Benutzer sollen schreiben dürfen, die Abteilung lesen und der Rest nichts. Was nun?
Claudia kann sich als Angela einloggen -> dumme Idee
Eine neue Gruppe für Angela und Claudia -> geht nicht, wir haben schon die Abteilung als Gruppe
Einen neuen User, unter dem sich beide einloggen können -> auch dumm
Mir fällt keine gebrauchbare Lösung ein, wenn du eine hast mailden !

Genau jetzt kommen die Access Control Lists (ab jetzt ACL) in Spiel: Sie erlauben beliebig viele Benutzer- und Gruppeneinträge.
NT-Administratoren kennen das schon und auch die Novell-Leute, auch die die kommerzielen Unix haben ACL, aber er unter Linux ist es kaum bekannt. Aber es ist da und funktioniert, und ab Samba 2.2 kannst du die Rechte vom NT/2000-Client einstellen !



Probleme mit ext2fs-ACL

Die Implementierungen sind noch recht neu und deswegen gibt es einige Probleme. Da wären im Moment:
Da sich diese Probleme recht schnell lösen könnten, solltest du zuerst mal auf die Web-Seite des Projektes [2] schauen, und dann entscheiden ob du es probierst.



Installieren der ACL

Jetzt wird es etwas knifflig: du mußt den Kernel patchen und einige wichtige Programme patchen (fsch.ext2, ls, cp, mv, ...), also überleg dir nochmal genau ob du ACL brauchst ....

Noch da? Dann los: Erst mal einen aktuellen Kernel [1] besorgen, dann unter http://acl.bestbits.at/ [2] alles runterladen was dort angeboten wird (kein Scherz), achte auf deinen Kernel ! Ich habe für diesen Artikel die Programmversionen 0.7.8 bzw. 0.7.9 und Kernel 2.4.2benutzt.
Du brauchst auch noch die Quellen von e2fsprogs [3] und die Quellen von den fileutils [4].


Kernel patchen und installieren

Der Kernel sollte so entpackt werden, daß er unter /usr/src/linux liegt; ein kleiner Tipp: lege deinen Kernel unter /usr/src/linux-2.4.2 oder so, und linke das Verzeichnis nach /usr/src/linux. Ich benutzte übrigens Kernel 2.4.2 für diesen Artikel.
Jetzt den EA-patch (linux-2.4.2ea-0.7.8.patch.gz ) nach /usr/src/linux kopieren und den Kernel patchen:

[root] /usr/src/linux # gzip -cd < linux-2.4.2ea-0.7.8.patch.gz | patch -p1

Es werden nun einige Dateien gepatch und es sollten keine Fehler kommen.

Danach den ACL-patch (linux-2.4.2acl-0.7.9.patch.gz) nach /usr/src/linux kopieren und den Kernel patchen:

[root] /usr/src/linux # gzip -cd < linux-2.4.2acl-0.7.9.patch.gz | patch -p1

Es werden nun einige Dateien gepatch und es sollten keine Fehler kommen.

Nun den Kernel kofigurieren:
Jetzt den Kernel compilieren und installieren (vergeß nicht lilo wenn du ihn benutzt), du kannst den Kernel nun booten und evtl. verbessern.

e2fsprogs anpassen

Ganz wichtig ist es e2fsck zu patchen, sonst erlebst du eine kleine Katastrophe wenn du die ACLs anwendest, und e2fsck beim nächsten Start darüber fällt und sich weigert weiter zu arbeiten (alles passiert ;-) ).
Also, die Quellen von e2fsprogs irgendwo enpacken und in dieses Verzeichnis den e2fsprogs-Patch (e2fsprogs-1.19ea-0.7.8.patch.gz) kopieren und patchen:

[root] # gzip -cd < e2fsprogs-1.19ea-0.7.8.patch.gz | patch -p1

Danach e2fsck compilieren; wie immer :./configure, make
Jetzt hast du im Unterverzeichnis (des Quellverzeichnisses von e2fsprogs) e2fsck ein neues e2fsck, dieses nun an die Stelle deines bisherigen e2fsck kopieren (zumeist /sbin), aber zuerst das bisherige e2fsck sichern !
Jetzt kommt wieder eine Falle: Das Tool fsck.ext2 sollte ein Link auf e2fsck sein, ist es aber nicht immer !! Also überprüfen und evtl. korrigieren ...

ACL Tools erstellen

So, du hast nun einen neuen, schönen Kernel, ein brandheißes e2fsck, aber wie arbeitest du nun mit den ACL ?
Dafür gibt es die Programme setfacl und getfacl, diese erstellen wir nun. Dieser Schritt ist einfacher:

Die fileutils anpassen

Wenn du die fileutils anpasst, zeigt dir ls ein Plus an, wenn ACL vorhanden sind, cp und mv kopieren/verschieben die ACL mit (Option -p). Ich finde das solltest du nun auch schnell machen ;-))
Zuerst mußt du ein neues Quellpacket der fileutils erzeugen:
[root] # xdelta patch fileutils-4.0.41acl-0.7.8.xdelta fileutils-4.0.41.tar.gz fileutils-4.0.41acl.tar.gz

Damit hast du fileutils-4.0.41acl.tar.gz erzeugt und nun:

Das wars, du bist durch !!



Quellen und weitere Dokus




Im Text genannte Links

[1] Kernel Quellen (deutscher Spiegel) : http://www.de.kernel.org
[2] Homepage des ext2-ACL Patches: http://acl.bestbits.at/
[3] Homepage e2fsprogs: http://e2fsprogs.sourceforge.net/
[4] Quellen fileutils: ftp://alpha.gnu.org/gnu/fetish/
[5] Steps-Seite auf der Homepage des ext2-ACL Patches: http://acl.bestbits.at/steps.html
[6] ix Artikel über ACL und Samba: http://www.heise.de/ix/artikel/2001/04/148/05.shtml
[7] Forschungszentrum Jülich: Setzen von Zugriffsrechten
mit Hilfe von Access Control Lists (ACL) unter Solaris
http://www.kfa-juelich.de/zam/docs/tki/tki_html/t0314/t0314.html

Erstellt: 2001-04-19 Autor: Markus Ungermann (markus@tuxhausen.de)
Letztes Update: 2007-10-01      URL: http://www.tuxhausen.de/software_acl_ext.html