Linux-Gruppen sind eine Sammlung von Benutzern. Sie sollen einer Gruppe von Benutzern auf einfache Weise Berechtigungen gewähren. In diesem Tutorial sehen wir uns verschiedene Möglichkeiten an, alle Gruppen in Linux aufzulisten.
2 Möglichkeiten zum Auflisten aller Gruppen in Linux
- /etc/group-Datei
- getent-Befehl
1. /etc/group-Datei
Die Datei /etc/group enthält alle lokalen Gruppen. Wir können also diese Datei öffnen und uns alle Gruppen ansehen.
root@localhost:~# cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: ...
Wenn Sie nach einer bestimmten Gruppe suchen, verwenden Sie den grep-Befehl, um sie herauszufiltern.
root@localhost:~# cat /etc/group | grep sudo sudo:x:27:journaldev,test root@localhost:~#
2. getent-Befehl
Linux getent Befehl Einträge aus Datenbanken abrufen, die von den Name Service Switch-Bibliotheken unterstützt werden. Wir können es verwenden, um alle Gruppeninformationen aus der Gruppendatenbank zu erhalten.
root@localhost:~# getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: ...
Sehen wir uns einige weitere Beispiele für die Auflistung aller Gruppen in Linux an.
Linux listet alle Gruppennamen auf
Wir können den cut-Befehl verwenden, um nur die Gruppennamen zu drucken. Dies ist nützlich, wenn wir in einem Shell-Skript nach einem bestimmten Gruppennamen suchen.
root@localhost:~# cut -d: -f1 /etc/group root daemon bin sys adm tty ...
Wir können den cut-Befehl auch mit dem getent-Befehl verwenden.
root@localhost:~# getent group | cut -d: -f1 root daemon bin sys adm tty disk ...
Der Cut-Befehl teilt jede Zeile mit dem Trennzeichen Doppelpunkt (:). Dann wird das erste Feld, der Gruppenname, mit der Option -f1 ausgewählt.
Auflistung aller Gruppennamen in alphabetischer Reihenfolge
Die obige Befehlsausgabe kann an den sort-Befehl übergeben werden, um die Ausgabe in natürlicher Sortierreihenfolge zu drucken.
root@localhost:~# getent group | cut -d: -f1 | sort adm audio backup bin cdrom crontab daemon ...
Anzahl aller Linux-Gruppen
Wenn Sie an der Anzahl der Linux-Gruppen interessiert sind, verwenden Sie die folgenden Befehle.
root@localhost:~# cat /etc/group | grep -c "" 68 root@localhost:~# getent group | grep -c "" 68 root@localhost:~#
Alle Gruppen eines Benutzers auflisten
Wir können den Gruppenbefehl verwenden, um alle Gruppen eines Benutzers zu erhalten.
root@localhost:~# groups journaldev journaldev : journaldev sudo test_users test_users_pwd root@localhost:~# root@localhost:~# groups root root : root root@localhost:~#
Gruppen des aktuellen Benutzers auflisten
Wenn Sie den Gruppenbefehl ohne Benutzereingabe ausführen, werden die Gruppen des aktuellen Benutzers gedruckt.
root@localhost:~# groups root root@localhost:~# su - journaldev journaldev@localhost:~$ groups journaldev sudo test_users test_users_pwd journaldev@localhost:~$
Benutzergruppen zusammen mit der Gruppen-ID auflisten
Wir können den Befehl id verwenden, um die Benutzerinformationen zu drucken. Dieser Befehl listet alle Gruppen zusammen mit ihrer Gruppen-ID auf.
root@localhost:~# id journaldev uid=1002(journaldev) gid=1003(journaldev) groups=1003(journaldev),27(sudo),1004(test_users),1007(test_users_pwd) root@localhost:~# root@localhost:~# id root uid=0(root) gid=0(root) groups=0(root) root@localhost:~#
Alle Benutzer einer Gruppe auflisten
Wir können den Befehl getent oder die Datei /etc/groups verwenden, um alle Benutzer zu erhalten, die zu einer Gruppe gehören.
root@localhost:~# getent group sudo sudo:x:27:journaldev,test root@localhost:~# root@localhost:~# getent group sudo | cut -d: -f4 journaldev,test root@localhost:~#
Schlussfolgerung
Der Befehl getent und die Datei /etc/group können verwendet werden, um alle Details der Linux-Gruppen abzurufen. Wir können sie zusammen mit den Befehlen cut und sort verwenden, um die Ausgabe besser darzustellen.
Referenzen
- Get Manpage
- Cut-Befehl-Manpage