Wiem, że jest /etc/group
plik z listą wszystkich grup użytkowników.
Chciałbym wiedzieć, czy istnieje proste polecenie, aby wyświetlić listę wszystkich nazw grup użytkowników, pomimo parsowania /etc/group
pliku czytelnego dla świata . Chcę utworzyć stronę administratora, która zawiera nazwy grup kont Linuksa.
Odpowiedzi:
Aby wyświetlić listę wszystkich grup lokalnych, do których przypisani są użytkownicy, użyj tego polecenia:
Dla bardziej INFO-> grup Unix , polecenie Wytnij , Polecenie sort
źródło
cut
to kolejne polecenie, które wyodrębnia określoną kolumnę z danych wejściowych. Wyodrębniam pole 1, w którym pola są ograniczone przez:
Jeśli chcesz, aby wszystkie grupy były znane w systemie, zaleciłbym użycie
getent group
zamiast analizowania/etc/group
:Powodem jest to, że w systemach sieciowych grupy mogą nie tylko czytać z
/etc/group
pliku, ale także uzyskiwać je przez LDAP lub Yellow Pages (lista znanych grup pochodzi z pliku grupy lokalnej plus grupy otrzymane w tym przypadku przez LDAP lub YP).Jeśli chcesz tylko nazwy grup, których możesz użyć:
źródło
getent group | cut -d: -f1 | sort
getent group | cut -d: -f1 | sort | cat -n
.W systemach Linux, macOS i Unix, aby wyświetlić grupy, do których należysz, użyj:
co jest równoważne
groups
narzędziu, które zostało przestarzałe w Uniksie (zgodnie z instrukcją Unixa ).W systemach macOS i Unix polecenie
id -p
jest sugerowane dla normalnej interaktywnej.Objaśnienie parametrów:
źródło
id -Gn someusername
zwraca listę grup dla określonego użytkownika.id -Gnz | xargs -0 -I% echo %
wypisze każdą grupę w osobnym wierszu. Jest to przydatne, jeśli w nazwach grup znajdują się spacje.groups
przestarzały? Jakieś źródła? Szukałem „przestarzałe polecenie grup unix”, ale niczego nie znalazłem.groups
.