[HRZ der JLU Gießen]
[HRZ-Collage]
[JLU-Logo mit Wappen; anklickbar; alt+j]
   Home > HRZ > Service > Veröffentlichungen > LOGIN 95/1  
Service [an error occurred while processing this directive]
Organisation
Datennetz
Nachrichtentechnik
Zentraler Medienservice
E-Learning/KOMM
Computer & Peripherie
Software

LOGIN-Gesamtverz. • LOGIN 95/1, Inhalt • 

Erweiterung der Dateizugriffsrechte auf den AIX-Workstations

(Günther Teichmann, HRZ)

Wer war nicht schon einmal in einer ähnlichen Situation? Sie möchten einem Kollegen eine Datei zugänglich machen und können dies nur erreichen, indem Sie die Datei für alle Benutzer auf dem betreffenden UNIX-Rechner freigeben. Dies ist äußerst unbefriedigend und manchmal aus Gründen des Datenschutzes nicht machbar.

Alle anderen Lösungen (z.B. über eine neue Benutzergruppe) scheitern normalerweise daran, daß Sie dafür den Systemadministrator (mit root-Berechtigung!) benötigen. Es kann nicht Aufgabe des Systemadministrators sein, solche benutzerspezifischen Arbeiten zu übernehmen.

Eine vernünftige Methode, spezielle Dateizugriffsrechte zu vergeben, bietet jetzt die Erweiterung des Betriebssystems AIX 3.2. Die Methode wird unter dem Begriff "Access Control Lists (ACL)" zusammengefaßt und ermöglicht die Vergabe zusätzlicher Dateizugriffsrechte, die der Benutzer selbst setzen kann.

Sehen wir uns zunächst einmal die Standard-Zugriffsrechte unter dem Betriebssystem UNIX an. Diese können auf drei verschiedenen Ebenen vergeben werden:

a) Zugriffsrechte für den Eigentümer (owner, user)

b) Zugriffsrechte für die Gruppe (group)

c) Zugriffsrechte für alle anderen Benutzer (others)

Außerdem kann bei der Vergabe der Zugriffsrechte differenziert werden, ob der Zugriff auf eine Datei nur zum Lesen oder nur zum Schreiben berechtigt oder ob die Datei nur ausgeführt werden darf. Beim Auflisten des Dateienkatalogs mit dem UNIX-Kommando ls -l wird das Leserecht mit r, das Schreibrecht mit w und das Ausführrecht mit x angezeigt.

Beispiel:

        -rwxrw-r-- 1 g099   hrz  ...  testdaten

Erläuterung:

Ab der zweiten Spalte werden die neun Zugriffsrechte einer Datei aufgelistet und zwar in der Reihenfolge: Eigentümer (hier: rwx), Gruppe (rw-) und alle anderen Benutzer (r).

Wenden wir uns jetzt dem neuen Konzept zur Vergabe von speziellen Zugriffsrechten zu. Diese werden in der Access-Control-List (ACL) eingetragen und im System gespeichert. Nur der Eigentümer der Datei hat Zugriff auf die ACL und kann diese editieren.

Die folgenden Anweisungen stehen zur Pflege der ACL zur Verfügung:

aclget
listet den Inhalt der ACL auf
acledit
mit Hilfe eines Editors können Zugriffsrechte eingetragen bzw. abgeändert werden.
aclput
Zugriffsrechte, die in einer Datei gespeichert sind, können "eingefahren" werden.

Sie können sich mit dem UNIX-Kommando ls e anzeigen lassen, welche Dateien im aktuellen Verzeichnis eine ACL besitzen.

Liste der speziellen Zugriffsrechte

Wie bereits erwähnt, listet die Anweisung

        aclget [ -o listdatei] dateiname

den Inhalt der Access-Control-List auf. Existiert keine ACL, erhalten Sie lediglich die Zugriffsrechte für die Standardgruppen owner, group und others.

Beispiele:

a) Für die Datei messwerte wurde noch keine ACL eingerichtet:

aclget messwerte
attributes:
base permissions
    owner(g099):  rw-
    group(test):  r--
    others:  ---
extended permissions
    disabled

Im Beispiel ist die Eingabe des Benutzers fett dargestellt.

b) Die Datei strukturdaten besitzt bereits eine ACL (auch hier ist die Eingabe des Benutzers wieder fett dargestellt):

aclget strukturdaten
attributes:
base permissions
    owner(g099):  rw-
    group(test):  ---
    others:  ---
extended permissions
    enabled
    permit   rw-   u:gz13
    specify  r--   u:hz24,g:fhgi,g:projekt1

Die Bedeutung der Schlüsselworte permit und specify wird im Zusammenhang mit der Anweisung acledit beschrieben.

Zugriffsrechte eintragen

Sollen neue Zugriffsrechte gesetzt werden, gehen Sie von der oben beschriebenen Listausgabe des Kommandos aclget aus und editieren diese, indem Sie beispielsweise neue Zugriffsrechte anfügen oder vorhandene abändern. Beim Zurückschreiben der Listausgabe werden die neu gesetzten oder geänderten Zugriffsrechte überprüft, ob sie fehlerfrei sind. Ist dies der Fall, werden sie in die ACL eingetragen, andernfalls erhalten Sie eine Fehlermeldung.

Mit dem Kommando

        acledit dateiname

können die beschriebenen Schritte zur Vergabe von Zugriffsrechten durchgeführt werden. Dabei greift acledit auf die UNIX-Umgebungsvariable EDITOR zu und benutzt den dort angegebenen Editor.

Ist die Variable EDITOR nicht definiert, müssen Sie sie vor dem Aufruf von acledit geeignet besetzen. Beispielsweise mit

        export EDITOR=/usr/bin/vi

falls der Editor vi benutzt werden soll.

Die Vorgehensweise beim Setzen neuer Zugriffsrechte soll jetzt im Detail beschrieben werden. Ausgangspunkt ist dabei die Datei messwerte.

Das Kommando acledit messwerte erstellt eine Hilfsdatei mit der ACL-Ausgabe für die Datei messwerte und ruft den eingestellten Editor (hier vi) auf, der den Inhalt der Hilfsdatei anzeigt. Jetzt können die neuen Zugriffsrechte oder Änderungen eingetragen werden. Das Schlüsselwort "disabled" muß durch "enabled" ersetzt werden; die neuen Zugriffsrechte können dann angefügt werden.

Beispiel für neue Zugriffsrechte:

permit   rw-    u:gz15
specify  r--    u:hz24,g:fhgi,g:projekt1

Wird der Editor nach Abschluß der Editierarbeiten verlassen, wird der Benutzer zusätzlich gefragt, ob die Änderungen in die ACL eingetragen werden sollen ("Should the modified ACL be applied? (yes) or (no)"). Die Antwort yes bewirkt, daß die neu eingetragenen Zugriffsrechte überprüft und bei Fehlerfreiheit in die ACL übertragen werden.

Syntax

Die ACL-Anweisungen werden im folgenden Format eingegeben:

   Schlüsselwort   Zugriffsmodus   Benutzerdaten

Dabei muß jede Anweisung in einer separaten Zeile stehen. Folgende Schlüsselwörter sind vorgesehen:

Schlüsselwort
Bedeutung
permit
Der Zugriff auf die Datei wird ermöglicht.
deny
Dem Benutzer/der Benutzergruppe wird der Zugriff verweigert.
specify
Mit specify können Zugriffsrechte durch zusätzliche Bedingungen eingeschränkt werden.

Als Zugriffsmodus muß der bereits bekannte Dreierblock bestehend aus den Zeichen r, w, x oder - eingesetzt werden.

Die Benutzerdaten werden aus den Angaben u:benutzerkennung oder g:gruppenkennung gebildet.

Beispiele:

a)      permit    r--  g:projekt1

Die Benutzer der Gruppe projekt1 dürfen die Datei lesen.

b)      specify rw- u:gz88,g:verwaltung,g:technik

Der Benutzer mit der Kennung gz88 hat nur dann das Lese- und Schreibrecht, wenn er sowohl der Gruppe verwaltung als auch der Gruppe technik angehört.

Zugriffsrechte für die Unterverzeichnisse

Es reicht nicht aus, nur die Zugriffsrechte auf Dateiebene zu setzen. Auch bei den übergeordneten Verzeichnissen müssen in analoger Weise Zugriffsrechte eingetragen werden. Insbesondere muß immer auch das Ausführrecht (x) gesetzt werden, damit der berechtigte Benutzer die Verzeichnisse, die zur Datei hinführen, aufrufen darf.

Liegt die Datei beispielsweise im Stammverzeichnis ($HOME) des Benutzers, müssen die Zugriffsrechte auf Dateiebene und im Stammverzeichnis eingetragen werden, damit die Datei von einem anderen Benutzer erreicht werden kann.

Betrachten wir nochmals das Beispiel mit der Datei messwerte. Wir hatten dort lediglich Zugriffsrechte für die Datei eingetragen, aber noch keine für das Stammverzeichnis. Dies muß noch nachgeholt werden, indem wir acledit wieder aufrufen und in analoger Weise Zugriffsrechte eintragen (die Eingabe des Benutzers ist fett dargestellt):

acledit $HOME
permit   r-x    u:gz15
specify  r-x    u:hz24,g:fhgi,g:projekt1

Auf Verzeichnisebene muß immer auch das Ausführrecht (x) eingetragen werden, damit der angegebene Benutzer auch auf das Verzeichnis zugreifen darf. Das Leserecht (r) schafft lediglich die Möglichkeit, daß der eingetragene Benutzer auch den Katalog des Verzeichnisses lesen darf.

Bei den Dateien, die "tief unten" in der Verzeichnishierarchie eingebettet sind, ist der Verwaltungsaufwand für die Zugriffsrechte nicht unerheblich. Sie können sich die Arbeiten jedoch dadurch vereinfachen, daß Sie eine ACL-Eingabedatei einrichten, die die erforderlichen Angaben für ein Verzeichnis enthält, und diese dann mit dem Kommando aclput in die übergeordneten Verzeichnisse "einfahren".

Das Kommando aclput hat die folgenden Parameter:

        aclput [ -i eingabedatei ]  datei

Eine ACL-Eingabedatei (Dateiname acleingabe) könnte beispielsweise wie folgt aussehen:

attributes:
base permissions
    owner(g099):  rw-
    group(test):  ---
    others:  ---
extended permissions
    enabled
    permit   r-x   u:gz13
    specify r-x  u:hz24,g:fhgi,g:projekt1

Mit

        aclput -i acleingabe  versuch1

lassen sich dann die Zugriffsrechte in dem Verzeichnis versuch1 "einfahren".

Beachten Sie, daß mit dem Kommando aclput auch stets die "base permissions" neu gesetzt werden, so daß vorhandene Standardzugriffsrechte überschrieben werden. Bevor Sie aclput einsetzen, sollten Sie sich überzeugen, ob nicht doch spezielle Zugriffsrechte in der "base permissions" gesetzt sind, die Sie beibehalten möchten.

Die Access-Control-Lists sind voll in das Betriebsystem AIX integriert und werden von den Kommandos beachtet. Eine Ausnahme gibt es jedoch: Wenn Sie das Kommando chmod in der numerischen Form aufrufen (z.B. chmod 640 messwerte), wird eine bestehende ACL außer Kraft gesetzt. Das bedeutet, die eingetragenen "extended permissions" werden "disabled".

In diesem Zusammenhang ist ein weiteres Kommando hilfreich: Möchten Sie feststellen, welche Dateien im Verzeichnis eine ACL besitzen, rufen Sie das Kommando ls mit der Option -e auf. Sie erhalten dann eine Liste, die bis auf eine Spalte mit der Ausgabe von ls -l identisch ist. In dieser Spalte (sie ist an den Neunerblock rwxrwxrwx angefügt) steht +, wenn eine ACL existiert. Andernfalls wird in dieser Spalte - eingetragen.

Weitere Information

Im InfoExplorer (Aufruf info) ist die Methode der Access-Control-Lists ausführlich beschrieben. Sie steht im Manual "System User's Guide: Operating System and Devices". Sie finden den Text am schnellsten über den Suchvorgang

        Simple Search

indem Sie als Suchbegriff

        access control lists

eingeben und die Option

        Search Title Only

aktivieren. Sie stoßen dann genau auf das Kapitel

        Access Control Lists

im Manual "System User's Guide: Operating System and Devices".

Zurück zum Inhaltsverzeichnis LOGIN Heft 1/95

Suche
Telefon
uni-intern; eingeschränkter ZugangNamen, Adressen,
E-Mail (X.500)

HRZ von A--Z
Site-Map
Aktuelles
HRZ-Dienste, Status
Welche Datei ist neu?
Web-Mail
neue Web-Seiten der JLU
Kontakt
Druckversion

Justus-Liebig-Universität Gießen, Ludwigstraße 23, 35390 Gießen
Telefon: +49 641 99 0; Fax: +49 641 99 12259, Pressestelle, Impressum
Infos, Korrekturen und Anregungen bitte an: webmaster@hrz.uni-giessen.de
Konzeption + Realisierung: HRZ

[<]    [.]    [^]    [>]

Letzte Änderung am 01.02.2006 von GP


[.] [..]