Red Hat Linux 7.1: Das Offizielle Red Hat Linux Referenzhandbuch | ||
---|---|---|
Zurück | Kapitel 2 Benutzer und Gruppen | Vor |
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. Beim Erstellen eines neuen Benutzers wird diesem standardmäßig eine eigene Gruppe zugeordnet. Hier das Prinzip:
Jeder Benutzer hat eine eigene Hauptgruppe, in der er das einzige Mitglied ist.
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.
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 bisher 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 devel, bei dem viele Benutzer die Dateien im Verzeichnis devel bearbeiten.Erstellen Sie eine Gruppe mit der Bezeichnung devel, fügen Sie das Verzeichnis devel (chgrp devel) und alle Benutzer des Projekts der Gruppe devel hinzu.
Mit Linuxconf können Sie einen Benutzer zu einer Gruppe hinzufügen (siehe Offizielles Red Hat Linux Handbuch Benutzerdefinierte Konfiguration). Wenn Sie für die Erstellung einer Gruppe lieber die Befehlszeile verwenden, geben Sie den Befehl /usr/sbin/groupadd Gruppenname. Mit dem Befehl /usr/bin/gpasswd -a loginname groupname wird ein Login-Name eines Benutzers zu eine Gruppe hinzugefügt (in den man-Seiten groupadd und gpasswd finden Sie mehr Informationen über diese Optionen). Die Datei /etc/group enthält Informationen über die Gruppen Ihres Sytems.
Wenn Sie die Gruppe devel erstellt haben, Benutzer zu der Gruppe devel hinzugefügt haben, die Gruppe für das Verzeichnis devel in der Gruppe devel geändert haben und das setgid-Bit für das Verzeichnis devel eingerichtet haben, können alle Benutzer die Dateien devel bearbeiten und neue Dateien im Verzeichnis devel erstellen. Diese Dateien sind dauerhaft der Gruppe devel zugeordnet und können daher jederzeit von anderen Benutzern desselben Projekts bearbeitet werden.
Wenn die Benutzer an mehreren Projekten wie devel 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.
Obwohl UPGs nicht ganz neu in Red Hat Linux 7.1 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.
Erstellen Sie zuerst eine emacs Gruppe:
/usr/sbin/groupadd emacs |
Geben Sie als Nächstes
chown -R root.emacs /usr/lib/emacs/site-lisp |
ein, um den Inhalt des Verzeichnisses mit der emacs Gruppe zu verbinden und die richtigen Benutzer der Gruppe hinzuzufügen:
/usr/bin/gpasswd -a <Benutzername> emacs |
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 |
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 soweit 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.
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.