Jak wyświetlić listę grup, do których należy użytkownik UNIX?

79

Za pomocą pts m groupnamemogę wymienić użytkowników w grupie. Jak mogę zrobić coś przeciwnego - to znaczy wymienić wszystkie grupy, których użytkownik jest członkiem?

(Potrzebuję tego, aby znaleźć nazwę grupy, której znam użytkownika, który jest członkiem, ale nie znam nazwy grupy ...)

Wyjaśnienie:
To pytanie komplikuje fakt, że nie jestem administratorem systemu i że nie mam uprawnień roota (daleko od niego). Zamiast tego należę do grupy „moderatorów”, którzy zarządzają niewielką częścią systemu, a ściślej fizyką związku studentów w centralnym systemie informatycznym mojej uczelni.

W naszym oddziale mamy kilka różnych grup dostępu dla osób, które są odpowiedzialne za rzeczy. W tym przypadku jedna z dwóch osób odpowiedzialnych za coś (nie ważne co) została zastąpiona, a ja chciałem zbadać drugiego użytkownika, aby dowiedzieć się, jakie prawa dostępu powinienem dać zamianę.

Teraz jestem w stanie rozwiązać natychmiastowy problem (nowy facet nie może uzyskać dostępu do folderu), sprawdzając folder, aby zobaczyć, kto ma dostęp, a następnie wybierając grupę z listy. Jednak może istnieć więcej przywilejów, które ten użytkownik powinien mieć, o których nie wiem, więc pytanie wciąż jest dla mnie istotne, choć nie tak ostre.

Tomas Aschan
źródło

Odpowiedzi:

105

Możesz także użyć groupspolecenia:

[root @ ftp ~] # grupy root
root: root bin daemon sys adm koło dyskowe

jeśli wszystko inne zawiedzie, jest też stary dobry grep:

[root @ ftp ~] # grep root / etc / group
root: x: 0: root
bin: x: 1: root, bin, demon
daemon: x: 2: root, bin, daemon
sys: x: 3: root, bin, adm
adm: x: 4: root, adm, demon
dysk: x: 6: root
koło: x: 10: root, admin
John T.
źródło
1
grep ^root: /etc/groupmoże być lepiej.
Dennis Williamson
nie, nie jest tak, ponieważ tylko wyświetla listę jednej z grup root, być może członek z odrobiną awk jest bardziej przejrzysty :) grep root / etc / group | awk -F: '{print $ 1}'
matthias krull
3
Badanie / etc / group brzmi nieźle, ale jeśli twój system korzysta ze scentralizowanego katalogu (NIS, LDAP, ActiveDirectory,?), Nie znajdziesz tam pełnej listy grup. W tym pliku będą znajdować się tylko definicje grup lokalnych.
Slartibartfast
To polecenie groups kczdaje mi tylko usr, choć wiem, że ten użytkownik jest członkiem grupy o nazwie fkm. Czego brakuje?
Tomas Aschan,
Nie jestem pewien, /etc/groupwklej swój @Tomas.
John T
28
$ id [username]
coneslayer
źródło
$: Command not found”.
Tomas Aschan
8
$Reprezentuje wiersz polecenia. Zacznij pisać za pomocą id.
coneslayer
Nadal nie daje mi wiele:uid=[five digits](kcz) gid=30(usr)
Tomas Aschan
pokazuje uid = gid = groups =, więc trzecią rzeczą, którą otrzymuję, jest lista grup, do których należy użytkownik.
MKJ
6

Znalazłem - znacznie później, ale zrobiłem to! =)

Tak jak

$>pts m [group name]

wyświetla wszystkich członków w grupie,

$>pts m [user name]

wyświetla wszystkie grupy, do których należy użytkownik. To było zbyt proste: P

Tomas Aschan
źródło
3
pts nie jest standardowym poleceniem.
user2284570,
1
@ user2284570: Być może nie. Ale w pytaniu zostało jasno powiedziane (tak naprawdę pierwsza rzecz i podkreślenie składni), ptsże dotyczy tego pytania.
Tomas Aschan