Jeder Benutzer ist einer Hauptgruppe zugeordnet, kann daneben aber auch Mitglied weiterer Gruppen sein. Der Zugriff auf gewisse Hardware oder Dienste ist auf die Mitglieder einer bestimmten Gruppe beschränkt. So dürfen z.B. nur Benutzer, die zur Gruppe „audio“ gehören, Klänge über die Soundkarte ausgeben. Möchte man nun einem Benutzer die Berechtigung für die Soundkarte geben, so erreicht man dies, indem man ihn in die Gruppe „audio“ aufnimmt.
Die Hauptgruppe eines Benutzers spielt im Zusammenhang mit den Zugriffsberechtigungen auf Dateien und Verzeichnisse eine Rolle. Jede Datei ist immer Eigentum genau eines Benutzers. Daneben ist den Dateien aber auch eine Gruppe zugeordnet. Wenn ein Benutzer eine Datei erzeugt, dann wird seine Hauptgruppe als Gruppe bei der erzeugten Datei eingetragen.
wiki.ubuntuusers.de
Wichtige Dateien
Besonders zu beachten sind hier:
- /etc/group
- /etc/gshadow (ähnlich der /etc/shadow, sofern Passwörter gesetzt sind werden diese verschlüsselt darin abgelegt)
- gpasswd (wird benutzt, um die Dateien /etc/group und /etc/gshadow zu verwalten und zu bearbeiten)
Warum ein Gruppen-Passwort vergeben?
Wenn ein Passwort für eine Gruppe vergeben wurde, ist es Benutzern möglich dieser Gruppe (temporär, Gruppe wird zur neuen Hauptgruppe) beizutreten und Dateien zu lesen/bearbeiten, welche vorher nicht für sie zugänglich waren.
Desweiteren kann nur der Benutzer root einen Gruppen-Administrator festlegen, welcher in der Lage ist andere Benutzer in die Gruppe hinzuzufügen.
ein Gruppen-Passwort einstellen
Ich habe auf einem Testsystem 4 Benutzer erstellt, wovon jeder nur in seiner Gruppe ist.
[root@localhost ~]# tail -n4 /etc/group
bill:x:1001:
tom:x:1002:
bob:x:1003:
susi:x:1004:
[root@localhost ~]# tail -n4 /etc/gshadow
bill:!::
tom:!::
bob:!::
susi:!::
Wenn nun der Benutzer bill versucht sich der Gruppe susi anzuschließen wird ein Passwort verlangt, welches nicht vergeben ist.
[root@localhost ~]# su - bill
[bill@localhost ~]$ id
uid=1001(bill) gid=1001(bill) Gruppen=1001(bill)
[bill@localhost ~]$ newgrp susi
Passwort:
Nun setzen wir als Benutzer root ein Passwort für die Gruppe susi:
[root@localhost ~]# gpasswd susi
Passwort für die Gruppe susi wird geändert.
Neues Passwort:
Passwort wiederholen:
[root@localhost ~]# grep susi /etc/gshadow
susi:$6$HhIKYhQQXV$ejGOdyqFvHtJUc9TcAcR16WZ1C9JmTtFx/aaNZMvIDSRqRnGExivoV5qnYLabcZLlKPAFp7foeF3AzyHKrpUl/::
der entsprechende Eintrag in der /etc/gshadow zeigt, dass das neue Passwort erfolgreich eingerichtet wurde.
Nun versuchen wir erneut als Benutzer bill der Gruppe susi beizutreten:
[root@localhost ~]# su - bill
[bill@localhost ~]$ groups
bill
[bill@localhost ~]$ newgrp susi
Passwort:
[bill@localhost ~]$ groups
susi bill
[bill@localhost ~]$ id
uid=1001(bill) gid=1004(susi) Gruppen=1004(susi),1001(bill)
Wie man sieht ist die neue Hauptgruppe susi.
Nun kann der Benutzer bill Dateien bearbeiten wo die Gruppe susi Zugriff drauf hat.
Wenn bill nun selbst Dateien anlegt, werden diese mit der Gruppe susi erstellt.
[bill@localhost ~]$ touch /test/test.txt
[bill@localhost ~]$ ll /test/test.txt
-rw-r--r--. 1 bill susi 0 28. Mär 10:58 /test/test.txt
Die Zuordnung der neuen Hauptgruppe susi per gpasswd-Befehl ist nur temporär. Ein einfaches exit
bzw. Strg+d sorgt dafür, dass die Gruppe wieder verlassen wird.
[bill@localhost ~]$ groups
susi bill
[bill@localhost ~]$ exit
exit
[bill@localhost ~]$ groups
bill
Gruppen-Administrator
Hier ist der Befehl gpasswd das Mittel der Wahl.
Der Gruppenverwalter einer Gruppe kann mit der Option -a (add) Gruppenmitglieder aufnehmen, mit -d (delete) Gruppenmitglieder aus der Gruppe ausschließen. Mit -r kann er das Gruppenpasswort löschen. Wenn kein Gruppenpasswort gesetzt ist, können nur eingetragene Gruppenmitglieder mit newgrp diese Gruppe zu ihrer Primärgruppe machen. Die Option -R macht einen Zugriff auf die Gruppe durch newgrp ganz unmöglich.
Wird gpasswd vom Gruppenadministrator nur mit einem Gruppennamen aufgerufen, so kann er damit das Gruppenpasswort ändern. Wenn ein Passwort gesetzt ist, können eingetragene Mitglieder immer noch mit newgrp arbeiten, ohne ein Passwort eingeben zu müssen, Nichtmitglieder brauchen das Passwort.
Nur der Benutzer root kann Gruppen-Administratoren festlegen, dies geschieht mit dem Befehl:
gpasswd -A <Benutzer> <Gruppe>
Als (sinnloses) Beispiel machen wir mal den Benutzer bob zum Gruppen-Administrator der Gruppe susi:
[root@localhost ~]# gpasswd -A bob susi
Nun kann der benutzer bob andere Benutzer in diese Gruppe hinzufügen, dies geschieht mit:
gpasswd -a <Benutzer> <Gruppe>
:
[bob@localhost ~]$ gpasswd -a bill susi
Benutzer bill wird zur Gruppe susi hinzugefügt.
[root@localhost ~]# groups bill
bill : bill susi