Navigationsleiste | Direktzugriff | Artikel | Home |
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 ;-))
Ich gehe in diesen Artikel davon aus, das ein Filesystem mit ACL-Unterstützung (z.B.: XFS) lauffähig installiert ist und die Tools setfacl und getfacl installiert sind.
So, ich mache mal eine kleinen Praxis-Lehrgang, ich denke damit versteht man dieses Thema besser. Auf jeden Fall solltest du die man-Page zu setfacl und getfacl genau lesen.
Wir haben diese Datei (aus dem Beispiel oben) :
-rw-r--r-- 1 angela buch 1234 03.06 16:02 urlaub.txt |
Claudia sollte ja nun auch diese Datei bearbeiten können; zuerst die Datei ändern und dann das Ergebnis anzeigen:
[root]# setfacl -m user:claudia:rw- urlaub.txt |
Und schon habst du das oben gennante Problem gelöst !!
Die Syntax dürfte nun schon fast klar sein: Sie ist in Art von chmod, chown. Aber erstmal der Reihe nach:
Mit dem setfacl Befehl änderst du die Zugriffsrechte der Datei, der Parameter "-m" (wie modify) dient zum Ändern der Rechte. Danach sagst du was du ändern willst, im Beispiel bekommt der Benutzer claudia (user:claudia:) Schreib/Lese-Rechte (rw-) für die Datei urlaub.txt.
Anstelle von user, group oder other, reicht es den ersten Buchtstaben ein zugeben; also setfacl -m u:claudia:rw- urlaub.txt ; desweiteren kannst du die Rechte auch als Oktalzahl angeben.
Der Befehl getfacl urlaub.txt ist quasi ein ls für die ACLs, er zeigt die aktuellen ACLs der Datei lesbar an.
Und was ls -l urlaub.txt macht, dürfte klar sein, neu ist das kleine Plus am Ende: Daran erkennst du, das diese Datei weitere Rechte (die ACLs) hat und diese zeigt dir nur getfacl.
Eine kleine Sache wird dir noch aufgefallen sein: Der Eintrag mask:rw-, dieser ist genial !
Damit werden die maximalen Rechte der Default-Gruppe und aller weiteren Benutzer und Gruppen festgelegt, nicht betroffen ist der Eingentümer (hier: # owner: angela) der Datei.
Steht dort nur Read geht auch nur maximal Read, egal was für den (zusätzlichen) Benutzer eingestellt ist !
So jetzt noch ein Paar weitere Beispiele, kurz erläutert:
Rechte aller User (außer Eigentümer) auf read stellen: (Hier wird die mask umgestellt) |
[root]# setfacl -m mask:r-- urlaub.txt [root]# getfacl urlaub.txt # file: urlaub.txt # owner: angela # group: buch user::rw- user:claudia:rw- #effective:r-- group::r-- mask:r-- other:r-- |
User claudia wieder löschen: | [root]# setfacl -x user:claudia urlaub.txt [root]# getfacl urlaub.txt # file: urlaub.txt # owner: angela # group: buch user::rw- group::r-- mask:r-- other:r-- |
Verzeichnisse verhalten sich ähnlich wie Dateien. Gut, das Recht zum Ausführen von Dateien, ist bei Verzeichnis das Recht zum Durchsuchen/eintauchen in das Verzeichnis; das ist aber nicht neu, sondern war bei Unix schon immer so.
Aber eine Sache kommt mit den ACLs: die Default-Rechte. Damit kannst du die Rechte definieren, die eine neu angelegte Datei im Verzeichnis hat. So könnte zum Beispiel eingestellt werden, daß alle neue Dateien im einem Verzeichnis als User claudia und angela haben:
[root]# setfacl -m d:user::rwx,d:user:claudia:rw-,d:user:angela:rw- acl_verz/
[root]# getfacl acl_verz/ #Rechte des Verzeichnisses acl_ver # file: acl_verz/ # owner: root # group: root user::rwx group::r-x other:r-x default:user::rwx default:user:angela:rw- default:user:claudia:rw- default:group::r-x default:mask:rwx default:other:r-x |
Legst du nun in diesem Verzeichnis Dateien an, so haben diese die folgenden Rechte:
[root] acl_verz # touch hallo.txt
[root] acl_verz # getfacl hallo.txt # file: hallo.txt # owner: root # group: root user::rw- user:angela:rw- user:claudia:rw- group::r-x #effective:r-- mask:rw- other:r-- |
Noch ein Wort zu #effective:r--: Die Gruppe hat hier die Rechte r-x, aber die mask nur rw-, aus diesem Grund sind die Gruppen-Rechte nu noch r--. Und das zeigt dir effective an.
Und was passiert wenn du ein Verzeichnis in einem ACL-Verzeichnis anlegst ?
Ganz einfach, dieses hat die gleich Default wie das übergeordnete Verzeichnis, es erbt die Rechte:
[root] acl_verz # mkdir acl_verz2
|
Gut, ich denke das reicht jetzt, du solltest aber vor dem Einsatz alles gut durchdenken und durchspielen, sonst gehst du in den vielen Rechten unter ;-))
Um es direkt zu sagen: JA, es geht !!
Etwas ausführlicher:
Ab der Version 2.2 von samba, kann samba die Rechte an einer drunterliegendes ACL-System weitergeben. Das bedeutet du kannst die Rechte direkt von Windows aus mit dem Explorer einstellen.
Damit das funktioniert mußt du samba beim configuren den Parameter "--with-acl-support" mit auf dem Weg geben, also mindestens:
./configure - -with-acl-support
make make install |
[1] | Homepage des ext2/ext3-ACL Patches: | http://acl.bestbits.at/ |
[2] | ix Artikel über ACL und Samba: | http://www.heise.de/ix/artikel/2001/04/148/05.shtml |
[3] | 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: 2007-10-01 | Autor: Markus Ungermann (markus@tuxhausen.de) |
Letztes Update: 2007-10-01 | URL: http://www.tuxhausen.de/acl.html |