Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Unitas Network GmbH

This Slogan Viewlet registered to Chameleon Theme
Sie sind hier: Startseite / Wissenswertes / Anleitungen / Gruppen-Schreibzugriff unter Linux

Gruppen-Schreibzugriff unter Linux

Setzen der Rechte im Linux-Dateisystem, um allen Nutzern einer Gruppe Schreibrechte auf alle Inhalte zu geben

Grundlagen

Die Rechtevergabe unter Linux unterscheidet sich erheblich von der z.B. unter Windows üblichen. Diese ist, da viel eher entstanden, wesentlich einfacher aufgebaut. Es gibt für Linux auch Erweiterungen (ACL), um komplexe Strukturen umsetzen zu können. Mit dem entsprechenden Wissen und Verständnis kann man aber auch mit den Standardmitteln die meisten Anforderungen erfüllen.

Im Beispiel haben wir einen Ordner "/nfs/freigabe1", in welchen alle Nutzer, welche Mitglied der Gruppe "users" sind, uneingeschränkt lesen und schreiben können sollen. Also gibt man diesem Ordner die Gruppe "users":

$ chgrp users /nfs/freigabe1
$ chmod 775 /nfs/freigabe1
$ ls -l /nfs
drwxrwxr-x 1 root users 4096 21. Dez 2010  freigabe1

Mit diesen Einstellungen gehört der Ordner "freigabe1" dem Benutzer "root" und der Gruppe "users".

Schreibt nun ein Benutzer mit dem Namen "user1" die Datei "Beispiel.txt" in dieses Verzeichnis, wird diese unter den Standardeinstellungen der meisten Linux-Distributionen mit folgenden Rechten angelegt:

$ ls -l /nfs/freigabe1
-rw-r--r-- 1 user1 user1 211 21. Dez 2010  Beispiel.txt

Die Datei gehört also dem Benutzer "user1" und der Gruppe "user1", der Benutzer hat Lese- und Schreibrechte, Mitglieder der Gruppe "user1" und ale anderen haben nur Leserechte. Das ist nicht das gewünschte Ziel, die Datei müßte der Guppe "users" gehören, die Rechte (der Modus) sollte "-rw-rw-r--" lauten.

Die Datei gehört der Gruppe "user1", weil dies die primäre Gruppe des Benutzers "user1" ist. So handhaben das die meisten Distributionen: Beim Anlegen einen neuen Benutzers wird eine gleichlautende Gruppe angelegt und diese als primäre Gruppe des Benutzers (in der /etc/passwd) verwendet.

Die Rechte lauten "-rw-r--r--" (entspricht dem oktalen Modus 644), weil die "File Mode Creation Mask" von den Distributionen meist auf den Wert 022 gesetzt wird.

Um die Rechte entsprechend zu setzen, müßten die Benutzer nach jedem Erstellen einer Datei Gruppenzugehörigkeit und Modus ändern:

$ chmod 664 /nfs/freigabe1/Beispiel.txt
$ chgrp users /nfs/freigabe1/Beispiel.txt

Dies ist nicht sehr benutzerfreundlich und kann mit den im Folgenden beschriebenen Maßnahmen geändert werden.

Modus neu erstellter Dateien

Der Modus neu erstellter Dateien wird durch die "File Mode Creation Mask" vorgegeben. Dieser Wert wird durch das Kommando "umask" geändert. Um neue Dateien mit dem Modus 664 anzulegen, ist eine "File Mode Creation Mask" von "0002" notwendig:

$ umask
0022
$ umask 0002
$ umask
0002

Um diesen Wert dauerhaft für alle Benutzer zu hinterlegen, muß das Kommando "umask 0002" immer beim Anmelden eines Benutzers ausgeführt werden. Wie das geschieht, ist distributionsabhängig. Unter Gentoo kann man dies z.B. unter "/etc/profile" definieren.

Man muß natürlich beachten, daß damit alle Dateien (auch z.B. im Homeverzeichnis) in diesem Modus erzeugt werden, d.h. andere Mitglieder der primären Gruppe des Nutzers dort Schreibzugriff haben. Da jedoch i.d.R. nur der Benutzer selbst Mitglied "seiner" Gruppe ist, stellt dies meist kein Problem dar.

Anstelle der Mask "0002" ist evtl. auch der Wert "0007" sinnvoll, damit entfällt der Lesezugriff für "andere" Benutzer (Modus 660).

Gruppe neu erstellter Dateien

Neu erstellte Dateien bekommen die primäre Gruppe des Benutzers zugewiesen, welcher die Datei erstellt. Damit diese zur Gruppe "users" gehören, müßten also alle Benutzer die Gruppe "users" als primäre Gruppe eingetragen bekommen. Das ist meist nicht gewünscht, da so alle Benutzer z.B. auch auf Dateien im Homeverzeichnis anderer Benutzer Schreibzugriff hätten.

Um für bestimmte Verzeichnisse dennoch neuen Dateien oder auch Verzeichnissen die Gruppe "users" zuzuweisen, kann das Sticky-Bit für Gruppen mittels "chmod g+s" gesetzt werden.

$ ls -l /nfs
drwxrwxr-x 1 root users 4096 21. Dez 2010  freigabe1
$ chmod g+rws /nfs/freigabe1
$ ls -l /nfs
drwxrwsr-x 1 root users 4096 21. Dez 2010  freigabe1

Damit erhalten alle neu erstellten Dateien und Verzeichnisse unter "freigabe1" die Gruppe von "freigabe1", also "users".

Vorhandene Verzeichnisse anpassen

Um vorhandene Verzeichnisstrukturen mit vielen Unterverzeichnissen und Dateien anzupassen, können folgende Kommandos genutzt werden:

$ find /nfs/freigabe1 -exec chgrp users \{\} \;
$ find /nfs/freigabe1 -type d -exec chmod g+rws \{\} \;

Damit werden dem Verzeichnis "/nfs/freigabe1" und allen darin enthaltenen Unterordnern und Dateien die Gruppe "users" zugeordnet. Anschließend wird bei allen Verzeichnissen das Group Sticky Bit gesetzt.

Hinweis für Nutzer eines NAS von QNAP:

Auf den QNAPs wird die Busybox verwendet, das dort enthaltene "find" unterstützt u.a. den Parameter "-exec" nicht. Man könnte sich durch Umleitung der "find"-Ausgabe in eine Datei und deren Ausführung behelfen. Einfacher ist aber evtl. das Installieren und Nutzen eines vollwertigen "find":

# ipkg install findutils
# /opt/bin/find /share/MD0_DATA/freigabe1 -exec chgrp everyone \{\} \;
# /opt/bin/find /share/MD0_DATA/freigabe1 -type d -exec chmod g+rws \{\} \;

Voraussetzung ist die Installation von Optware IPKG (Itsy Package Management System) über die Adminoberfäche unter "Home - Application Servers - QPKG Plugins".

Artikelaktionen

abgelegt unter: , ,