Benutzer, Gruppen und benutzereigene Gruppen

Die Verwaltung von Benutzern und Gruppen ist schon immer ziemlich mühsam gewesen. Red Hat Linux bietet hier einige Tools und Konventionen, mit denen Sie Benutzer und Gruppen leichter verwalten können.

Am besten lassen sich Benutzer und Gruppen mit linuxconf verwalten (siehe Kapitel 3). Sie können aber auch den Befehl useradd verwenden, um von der Befehlszeile aus einen neuen Benutzer zu erstellen.

Als Nächstes wollen wir die grundlegenden Prinzipien bei der Verwaltung von Benutzern und Gruppen näher betrachten.

Standardbenutzer

Tabelle 2-1 zeigt die Standardbenutzer, die während des Installationsvorgangs eingerichtet werden (entspricht im Prinzip dem Inhalt der Datei /etc/passwd). Die Gruppen-ID (GID) in der Tabelle gibt die Hauptgruppe des Benutzers an. Nähere Einzelheiten über die Verwendung von Gruppen finden Sie in Abschnitt namens Benutzereigene Gruppen.

Tabelle 2-1 Standardbenutzer

Benutzer UID GID Home-Verzeichnis Shell
root 0 0 /root /bin/bash
bin 1 1 /bin  
daemon 2 2 /sbin  
adm 3 4 /var/adm  
lp 4 7 /var/spool/lpd  
sync 5 0 /sbin /bin/sync
shutdown 6 0 /sbin /sbin/shutdown
halt 7 0 /sbin /sbin/halt
mail 8 12 /var/spool/mail  
news 9 13 /var/spool/news  
uucp 10 14 /var/spool/uucp  
operator 11 0 /root  
games 12 100 /usr/games  
gopher 13 30 /usr/lib/gopher-data  
ftp 14 50 /var/ftp  
nobody 99 99 /  

Standardgruppen

Tabelle 2-2 zeigt die Standardgruppen, die während des Installationsvorgangs eingerichtet werden (entspricht im Prinzip dem Inhalt der Datei /etc/group).

Tabelle 2-2 Standardgruppen

Gruppe GID Mitglieder
root 0 root
bin 1 root, bin, daemon
daemon 2 root, bin, daemon
sys 3 root, bin, adm
adm 4 root, adm, daemon
tty 5  
disk 6 root
lp 7 daemon, lp
mem 8  
kmem 9  
wheel 10 root
mail 12 mail
news 13 news
uucp 14 uucp
man 15  
games 20  
gopher 30  
dip 40  
ftp 50  
nobody 99  
users 100  

Benutzereigene Gruppen

Red Hat Linux verwendet benutzereigene Gruppen (UPG, User Private Groups). Damit wird die Benutzung von Unix-Gruppen wesentlich vereinfacht. UPG bringt keine Zusätze oder Änderungen in Bezug auf die standardmäßige Behandlung von Gruppen unter Unix. Vielmehr wird eine neue Konvention für die Handhabung von Gruppen eingeführt. Bei jedem Erstellen eines neuen Benutzers wird diesem standardmäßig eine eigene Gruppe zugeordnet. Hier das Prinzip:

Benutzereigene Gruppen

Jeder Benutzer hat seine eigene Hauptgruppe, in der er das einzige Mitglied ist.

umask = 002

Die herkömmliche Unix-umask ist 022. Damit wird verhindert, dass andere Benutzer und andere Mitglieder der Hauptgruppe eines Benutzers die Dateien eines Benutzers bearbeiten. Bei UPG hat jeder Benutzer seine eigene Gruppe, und daher wird solch ein "Gruppenschutz" nicht mehr benötigt. Damit Benutzer nicht die privaten Dateien anderer Benutzer bearbeiten können, wird in /etc/profile die umask auf 002 gesetzt.

setgid-Bit für Verzeichnisse

Wenn Sie das setgid-Bit für ein Verzeichnis setzen (mit chmod g+s Verzeichnisname), werden die in diesem Verzeichnis erstellten Dateien der Gruppe des Verzeichnisses zugeordnet.

Meistens wird in einer EDV-Abteilung für jedes größere Projekt eine Gruppe erstellt, und den entsprechenden Gruppen werden dann die Benutzer zugeordnet. Trotzdem war die Dateiverwaltung oft problematisch, denn wenn ein Benutzer eine Datei erstellt, wird die Hauptgruppe des Erstellers zum Eigentümer dieser Datei. Wenn ein einzelner Benutzer an mehreren Projekten arbeitet, ist es nicht einfach, die mit dem Projekt verbundene Gruppe zum Eigentümer der Dateien zu machen. Bei UPG werden Gruppen entsprechend dem jeweiligen Projekt automatisch mit Dateien verknüpft. Dadurch wird die Verwaltung von Gruppenprojekten sehr einfach.

Angenommen, Sie haben ein großes Projekt namens entwicklung, bei dem viele Benutzer die Dateien im Verzeichnis entwicklung bearbeiten. Erstellen Sie eine Gruppe mit der Bezeichnung entwicklung, fügen Sie das Verzeichnis entwicklung (chgrp entwicklung) und alle Benutzer des Projekts der Gruppe entwicklung hinzu. Jetzt können alle Benutzer des Projekts die Dateien im Verzeichnis entwicklung bearbeiten und neue Dateien erstellen. Diese Dateien sind dauerhaft der Gruppe entwicklung zugeordnet und können daher jederzeit von anderen Benutzern desselben Projekts bearbeitet werden.

Wenn die Benutzer an mehreren Projekten wie entwicklung arbeiten, brauchen sie beim Wechsel zwischen den Projekten ihre umask oder Gruppe nicht zu ändern. Das setgid-Bit im Hauptverzeichnis des jeweiligen Projekts "wählt" die richtige Gruppe.

Da ein Benutzer und seine eigene Gruppe stets Eigentümer des Home-Verzeichnisses dieses Benutzers sind, kann das SGID-Bit ohne Bedenken für das Home-Verzeichnis gesetzt werden. Da aber Dateien bei Ihrer Erstellung standardmäßig der Hauptgruppe des Benutzers zugeordnet werden, ist das SGID-Bit in diesem Fall redundant.

Das Grundprinzip der benutzereigenen Gruppen

Obwohl UPGs nicht ganz neu in Red Hat Linux 7.0 sind, haben viele Benutzer immer noch Fragen zu diesem Thema, z.B. warum UPG überhaupt notwendig ist. Im Folgenden wird das Grundprinzip dargestellt.

  • Eine Arbeitsgruppe soll Dateien bearbeiten, z.B. im Verzeichnis /usr/lib/emacs/site-lisp. Sie möchten vermeiden, dass bestimmte Mitarbeiter dabei aus Unkenntnis Schaden anrichten.

  • Also geben Sie Folgendes ein:
    chown -R root.emacs /usr/lib/emacs/site-lisp
                    
    und Sie fügen die richtigen Benutzer der Gruppe hinzu.

  • Damit die Benutzer Dateien im Verzeichnis erstellen können, geben Sie Folgendes ein:
    chmod 775 /usr/lib/emacs/site-lisp
                    

  • Wenn ein Benutzer jedoch eine neue Datei anlegt, wird sie der Standardgruppe des Benutzers zugeordnet (meistens users). Um das zu verhindern, geben Sie Folgendes ein:
    chmod 2775 /usr/lib/emacs/site-lisp
                    
    Daraufhin werden alle in diesem Verzeichnis erstellten Dateien der Gruppe "emacs" zugeordnet.

  • Damit andere Benutzer in der Gruppe "emacs" die neue Datei bearbeiten können, muss der Modus 664 eingestellt werden. Setzen Sie dazu die Standard-umask auf 002.

  • Das funktioniert so weit ganz gut. Wenn Ihre Standardgruppe "users" ist, kann allerdings jede von Ihnen im Home-Verzeichnis erstellte Datei von jedem Mitglied der Gruppe "users" überschrieben werden (in der Regel also von allen Benutzern).

  • Um das zu ändern, ordnen Sie jedem Benutzer eine "benutzereigene Gruppe" als Standardgruppe zu.

An dieser Stelle können Sie durch das Setzen der Standard-umask auf 002 und das Zuordnen von benutzereigenen Standardgruppen zu allen Benutzern auf einfache Art und Weise Gruppen erstellen, die den Benutzern sehr nützlich sein können. Erstellen Sie einfach die Gruppe, fügen Sie die Benutzer hinzu, und wenden Sie die oben genannten Befehle chown und chmod auf die Gruppenverzeichnisse an.