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.

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

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]

$: 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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.