Wenn wir als Menschen ein neues Objekt entdecken, macht unser Gehirn ein paar Dinge. Erstens sehen wir den Nutzen des Objekts. Zweitens weisen wir dem Objekt eine Gruppe zu, damit wir wissen, wie wir es in Zukunft klassifizieren können. Wenn ein Kind zum Beispiel einen Hammer entdeckt, ist es sich im Allgemeinen bewusst, dass es verwendet werden könnte, um Dinge zu schlagen. Anschließend ordnen sie den Hammer einer Gruppe zu. In einigen Fällen bezeichnet das Kind den Hammer als Werkzeug und verwendet ihn nur, um eine Aufgabe zu erfüllen. In anderen wird das Kind den Hammer als Spielzeug bezeichnen. Die Nützlichkeit des Hammers ist jedoch immer noch offensichtlich, also achten Sie auf das letztere Kind. Deshalb ist die Gruppierung wichtig.
Gruppen in Linux sind wichtig, weil Benutzer für ein definiertes Dienstprogramm auf dem System vorhanden sind. Das Gruppieren von Benutzern nach Dienstprogramm (oder Zugriff) ist eine fantastische Möglichkeit, um sicherzustellen, dass nur Administratoren Administratorrechte haben und dass allgemeine Benutzer nur auf Dateien zugreifen können, für die sie bestimmt sind. Benutzer werden in drei verschiedene Klassifikationen eingeteilt, um den Gruppierungsprozess ein wenig einfacher zu machen:
- Superuser - Verantwortlich für die Administration des Systems. Die Wurzel Konto ist der Chief Superuser und hat
UID 0
. - Systembenutzer - Benutzerkonten, die vom System selbst zum Ausführen von Prozessen oder Daemons verwendet werden. Jeder dieser Benutzer hat seine eigenen Dateien und Ressourcen. Idealerweise melden sich Benutzer nicht als Systembenutzer an. Der Bereich der UIDs ist
1-999
. - Normale Nutzer - Konten, die die meisten von uns für ihre tägliche Arbeit verwenden. Sie sind in ihrem Zugriff auf Dateien und Systeme eingeschränkt und müssen sudoer erhalten Berechtigungen zum Ausführen von Verwaltungsaufgaben. Die UIDs beginnen bei
1000+
.
Wenn Sie weitere Informationen zu grundlegenden Benutzer- und Gruppenkonzepten wünschen, lesen Sie den Artikel Benutzerkontenverwaltung mit UIDs und GIDs von Ken Hess. Für den Rest dieses Artikels konzentriere ich mich auf Gruppenerstellung, Mitgliedschaft und Identifikationscodes sowie darauf, wie man einer Gruppe Superuser-Privilegien zuweist.
Primäre Gruppe
Alle Benutzer werden standardmäßig einer primären Gruppe zugewiesen. Für lokale Konten ist die primäre GID dieselbe wie die in /etc/passwd
aufgeführte Datei. Das bedeutet, dass der Benutzername und der Gruppenname identisch sind. Es bedeutet auch, dass der Benutzer das einzige Mitglied dieser Gruppe ist. Zum Beispiel:
[root@server ~]# useradd user01
[root@server ~]# su - user01
[user01@server ~]$ id
uid=1002(user01) gid=1002(user01) groups=1002(user01) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Der Nebeneffekt dieses Designs ist, dass es die Verwaltung von Dateiberechtigungen für die Benutzer und Administratoren viel einfacher macht. Wenn Sie Benutzer für einen gemeinsamen Zweck in einer primären Gruppe zusammenfassen möchten, müssen Sie eine Gruppe erstellen und ihr dann die gewünschten Benutzer zuweisen.
[ Das könnte Ihnen auch gefallen:Grundlagen des Linux-Systemadministrators:Benutzerkontenverwaltung ]
Gruppenerstellung
Für unsere Demonstration werde ich die Gruppe demogroup
erstellen . Sie können der Ausgabe entnehmen, dass die Gruppe erstellt und ihr die GID 1007:
[root@server ~]# groupadd demogroup
[root@server ~]# tail /etc/group
cockpit-wsinstance:x:975:
flatpak:x:974:
rngd:x:973:
admin:x:1001:
user01:x:1002:
user02:x:1003:
user03:x:1004:
user04:x:1005:
user05:x:1006:
demogroup:x:1007:
Jetzt ändern wir die GID auf 10007:
[tcarrigan@server ~]$ sudo groupmod -g 10007 demogroup
Output Omitted
[tcarrigan@server ~]$ sudo tail /etc/group
Output Omitted
demogroup:x:10007:
Verwenden Sie den groupmod -g GID groupname
Syntax, um bei Bedarf die GID einer beliebigen Gruppe zu ändern. Wenn Sie den Namen einer Gruppe ändern müssen, verwenden Sie groupmod -n NEWNAME oldname
. Hier ist ein Beispiel:
[tcarrigan@server ~]$ sudo groupmod -n usergroup demogroup
[tcarrigan@server ~]$ sudo tail /etc/group
Output Omitted
usergroup:x:10007:
Beachten Sie, dass wir demogroup
umbenannt haben zu usergroup
. Die Gruppe ist immer noch dieselbe, wie durch die GID 10007 angegeben.
Hinzufügen von Benutzern zu einer Gruppe
Eine Gruppe ohne Mitglieder ist wie ein Wald ohne Bäume. Wie fügen wir also ein paar Mitglieder hinzu? Ganz einfach.
[tcarrigan@server ~]$ sudo usermod -g usergroup user01
[tcarrigan@server ~]$ sudo usermod -g usergroup user02
[tcarrigan@server ~]$ sudo usermod -g usergroup user03
[tcarrigan@server ~]$ sudo usermod -g usergroup user04
[tcarrigan@server ~]$ sudo usermod -g usergroup user05
Sie können die Änderung der GID und des Gruppennamens seit der Erstellung von user01 sehen zu Beginn dieser Übung.
[user01@server ~]$ id
uid=1002(user01) gid=10007(usergroup) groups=10007(usergroup) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Ergänzungsgruppe
Nun kann ein Benutzer auch einer zusätzlichen Gruppe angehören. Eine ergänzende Gruppe ist genau das – ergänzend. Eine sehr beliebte Verwendung für zusätzliche Gruppen ist das Zuweisen von Administratorrechten über sudo
.
Wenn beispielsweise user01 muss die Berechtigungen für andere Benutzer in der Benutzergruppe ändern , ohne der gesamten Gruppe Administratorberechtigungen zuzuweisen, weisen wir user01 zu zu einer zusätzlichen Gruppe mit Admin-Rechten. Auf vielen Systemen das Rad Gruppe wird für genau solche Gelegenheiten verwendet.
Rad hinzufügen als ergänzende Gruppe zu user01 :
[tcarrigan@server ~]$ sudo usermod -aG wheel user01
[tcarrigan@server ~]$ su - user01
Output Omitted
[user01@server ~]$ id
uid=1002(user01) gid=10007(usergroup) groups=10007(usergroup),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
HINWEIS :Der -a
Option erzwingt usermod
in anhängen Modus. Wenn der -a
Option nicht verwendet wird, wird der Benutzer aus allen anderen zusätzlichen Gruppen entfernt, die nicht im -G
aufgeführt sind Optionsliste.
Sie können jetzt diesen user01 sehen hat eine primäre Gruppe (usergroup ) und eine ergänzende Gruppe (wheel ).
Sudo-Gruppenkonfiguration
Was ist, wenn wir der gesamten Benutzergruppe Administratorrechte erteilen müssen? ? Um dies zu erreichen, müssen wir die /etc/sudoers.d/usergroup
erstellen Datei:
[root@server ~]# echo "%usergroup ALL=(ALL) ALL" >> /etc/sudoers.d/usergroup
[root@server ~]# su - user02
[user02@server ~]$ sudo cat /etc/sudoers.d/usergroup
[sudo] password for user02:
%usergroup ALL=(ALL) ALL
Sie können darüber user02 sehen , ein Mitglied der Benutzergruppe , hat jetzt Administratorrechte. Weitere Informationen zu Administratorrechten und der sudoers-Datei finden Sie in meinem vorherigen Artikel Grundlagen der Linux-Befehlszeile:sudo.
[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ]
Warum sollte es Sie interessieren?
Wenn Sie sich die obige Frage stellen, denken Sie praktisch über die folgenden Konzepte nach:Die Verwendung von Gruppen in Linux ist ein grundlegender Bestandteil des Betriebssystems und wird sogar benötigt, um verschiedene Anwendungen auszuführen. Die Zuweisung von Benutzern zu einfach zu steuernden Gruppen ist eine großartige Möglichkeit, die Sicherheit Ihrer Systeme schnell zu erhöhen und mehrere Benutzerkonten zu verwalten. Wie oben gezeigt, können Sie bestimmten Benutzern den Zugriff auf Administratorrechte gewähren, um bestimmte Arbeiten zu erledigen, ohne ihnen Root-Zugriff auf das System zu gewähren. Wenn wir unsere Benutzer organisiert und produktiv halten und gleichzeitig sicherstellen können, dass sie nur Zugriff auf das haben, was sie brauchen, machen wir unser Leben einfacher und unsere Benutzer-zu-Administrator-Beziehungen werden etwas weniger stressig sein. Ihre Organisation wird von Grund auf von diesen Verbesserungen profitieren, ob sie es weiß oder nicht.