Zugriffsrechte & ACL       [1.4] 

ACL (Access Control List)


Die Kapitel "Zugriffsrechte & Users [1.1] [1.2] [1.3]" machen die Schwächen der Standard-Rechtevergabe in Linux deutlich.

Die in den Kapiteln 1.1 bis 1.3 angesprochene Rechtevergabe bezieht sich nur auf den gerade lokalen Rechner Z und die dort freigegeben Verzeichnisse (Shares). Soll aber ein Mitarbeiter X mit seinem Arbeitsplatzrechner Y auf diese Shares zugreifen funktioniert leider das ganze Konstrukt der Rechtevergabe nicht so einfach, denn die User und Gruppenrechte kennt ja nur der Rechner Z mit den freigegebenen Verzeichnisses nicht aber der Rechner Y.

Hier schlägt die Stunde von übergeordneten Konstruktionen, die die User und Gruppen fast "weltweit" verwalten können. Hier hat Microsoft im Augenblick mit seiner Konstruktion des ADS (Active Directory Service) die Nase vor, dank seiner zentralisierten System-Entwicklung.

Unter Access Control List versteht man unter Unix/Linux eine auf die klassischen Zugriffssteuerung aufgesetzte Ebene des Besitz-Gruppe-Modells zur vereinfachten Zugriffssteuerung.Es wäre hier müssig zu streiten ob die ACL eine Erfindung von Windows oder Linux ist, vielmehr ist es wichtig zu wissen was durch die Einführung der ACL an der Einstellung der Rechtevergabe bewirkt wird. ACL ist mehr eine Ergänzung zur "normalen" Rechtevergabe in Linux. Wird jedoch die Entscheidung getroffen eine ACL zu verwenden muß man zu dieser Entscheidung stehen. Eine "mal eben auf die Schnelle" getroffene Lösung mit der normalen (eingebauten) Standard-Rechtevergabe kann zwar für den einen Fall eine Lösung bieten, kann aber auf Dauer zu unvorhersehbares Ergebnissen führen. Besonders dies dieser Weg manchmal verführerisch, da viele Shellbefehle die von ACL getroffenen und Zustände einfach ignorieren. Man kann über Microsoft schimpfen und fluchen, doch da ist die Lösung der ACL wenigstens einheitlich, da die ACL-Aplikation fester Bestandteil des Betriebs-System ist und nicht wie in Linux einfach nur übergestülpt!

ACL bieten eine wesentliche Vereinfachung und Verfeinerung der einzelnen Zugriffsrechte. Es kann an einer Datei sowohl bestimmten Personen der Zugang gewährt als auch gleichzeitig anderen Personen verweigert werden.

Hier kurz ein paar Hinweise zur ACL, am besten ist dies unter Wiki oder ACL-Beispiel nachzulesen. 


Installation des Software-Packtes:    sudo apt-get -s install acl 

Setzen und Löschen von ACLs

Setzen von Rechten für Benutzer und Gruppen:

setfacl -m u:BENUTZER:-,g:GRUPPE:RECHTE,... DATEI ... 

Man beachte, dass mehrere Rechtevergaben durch Kommas getrennt aufgelistet werden können. Folgende Regeln gelten:

  • Das u steht für einen User. Ist BENUTZER = "", dann werden die Rechte für den Dateibesitzer gesetzt.

  • Das g steht für eine Gruppe. Ist GRUPPE = "", dann werden die Rechte für die besitzende Gruppe gesetzt.

  • Das o steht für Andere ("other").

  • Das m steht für die Maske (Erklärung weiter unten).

  • Die Rechte sind wie bei chmod: rw oder x, oder - für keine Rechte. Mit dem großen X wie bei chmod kann man x-Rechte setzen, falls es ein Verzeichnis ist oder für jemanden schon ein x-Bit gesetzt ist.

Entfernen einzelner Einträge in der ACL:

setfacl -x u:BENUTZER,g:GRUPPE,... DATEI ... 

Es gibt sogar eine Graphische Tool "eiciel"   um die ACL einzurichten.

Ein Beispiel für Anwendung von ACL finden Sie hier.

Ansicht der Rechte über Standvergabe, noch nicht mit ACL. Aus meinen Beispiell: Verzeichnis - test-mit-x
Ansicht der Rechte über Standvergabe, noch nicht mit ACL. Aus meinen Beispiell: Verzeichnis - test-mit-x
Ansicht der Rechte über Standvergabe, noch nicht mit ACL. Aus meinen Beispiel: Datei - mit-2-text-sgid.txt
Ansicht der Rechte über Standvergabe, noch nicht mit ACL. Aus meinen Beispiel: Datei - mit-2-text-sgid.txt

Das Hauptproblem ist aber mit der Einführung von ACL noch nicht gelöst.

Die Rechte gelten auch hier nur auf dem System wo diese hinterlegt wurden. Die Microsoft-Idee gehöre ich einer Domäne an, also also einer Organisation, so kann ich ohne mir Gedanken machen zu müssen überall und von jedem Rechner aus auf meine Daten zugreifen.

Ich kann zwar unter der Linux ACL von jedem Rechner und auch vom Ort unabhängig die Laufwerke "mappen" sorry "mounten" und somit auf meine Daten zugreifen, aber ich muss selber aktiv werden. Ich muss die Informationen Wo, Wie, Was und Passwörter selber wissen, bei Microsoft brauche ich nur mein Benutzernamen und ein Passwort für alles!

Ich werde im nächster Schritt auf OpenLDAP eingehen, denn diese Erweiterung liefert mir den letzten Schritt zu einer Microsoft ähnlichen Struktur Teil .

Anmerkung:

ACL ist, wenn ich es richtig verstanden habe, ein Oberbegriff (Sammelbegriff) für ein System, mit dem es möglich ist, eine Kontrolle über verschiedene Dinge (wie z.B.: Daten und Dateien) hinsichtlich des Zugriffsmechanismus  auszuüben.

Es ist also nicht das Mittel (Werkzeug) selbst, sondern nur der umschreibende Begriff für "Was mache ich wie", das durchführende Mittel (Werkzeug) selbst beschreibt sich durch die Begriffe: NIS, LDAP, SAMBA.

NFS steht eigentlich nur für das zu kontrollierende Medium "Daten und Dateien"!


Wichtige Links:

ACL            http://de.wikipedia.org/wiki/Access_Control_List

                   http://wiki.ubuntuusers.de/ACL

                   http://www2.wi.fh-flensburg.de/wi/riggert/Netzwerke/CCNA2-ACL.pdf

                   http://aclbit.sourceforge.net

                   http://wiki.ubuntuusers.de/ACL?rev=723702

                   http://wiki.ubuntuusers.de/Shell/Befehls%C3%BCbersich

                  Mandatory-Access-Control-MAC-mit-SE-Linux

                   

ADS            Active Directory -Dienst

                    Active Directory Domain Service

                    AD , ADDS