Come posso elencare i gruppi di cui è membro un utente UNIX?


79

Con pts m groupnameposso elencare gli utenti in un gruppo. Come posso fare il contrario, ovvero elencare tutti i gruppi di cui un utente è membro?

(Ho bisogno di questo per trovare il nome di un gruppo di cui conosco un utente di cui è membro, ma non conosco il nome del gruppo ...)

Chiarimento:
questa domanda è complicata dal fatto che non sono l'amministratore di sistema e che non ho i permessi di root (tutt'altro). Invece, faccio parte di un gruppo di "moderatori" che amministrano una piccola parte del sistema - per essere precisi, il ramo di fisica del sindacato studentesco nel sistema IT centrale della mia università.

All'interno della nostra filiale, abbiamo un gruppo di diversi gruppi di accesso per le persone che si occupano delle cose. In questo caso, una delle due persone responsabili di qualcosa (non importa quale) è stata sostituita e stavo cercando di esaminare l'altro utente per scoprire quali diritti di accesso avrei dovuto dare alla sostituzione.

Sono stato ora in grado di risolvere il problema immediato (il nuovo ragazzo non è in grado di accedere a una cartella) esaminando la cartella per vedere chi ha accesso e lì selezionando il gruppo dall'elenco. Tuttavia, potrebbero esserci più privilegi di questo utente che non conosco, quindi la domanda è ancora rilevante per me, anche se non così acuta.

Risposte:


105

Puoi anche usare il groupscomando:

[root @ ftp ~] # gruppi root
root: root bin daemon sys adm disk wheel

se tutto il resto fallisce c'è anche un buon vecchio grep:

[root @ ftp ~] # grep root / etc / group
root: x: 0: root
bin: x: 1: root, bin, daemon
daemon: x: 2: root, bin, daemon
SYS: x: 3: root, bin, adm
adm: x: 4: radice, adm, daemon
disk: x: 6: root
ruota: x: 10: radice, amministrazione

1
grep ^root: /etc/grouppotrebbe essere migliore.
Dennis Williamson,

no non lo è poiché elenca solo uno dei gruppi di cui fa parte root forse con un po 'di awk è più chiaro :) grep root / etc / group | awk -F:' {print $ 1} '
matthias krull

3
Esaminare / etc / group suona bene, ma se il tuo sistema utilizza una directory centralizzata (NIS, LDAP, ActiveDirectory,?), Non troverai un elenco completo di gruppi lì. Solo le definizioni di gruppi locali sarebbero in quel file.
Slartibartfast,

Il comando groups kczmi dà solo usr, anche se so che questo utente è membro di un gruppo chiamato fkm. Che cosa manca?
Tomas Aschan,

Non sono sicuro, /etc/groupincolla il tuo @Tomas.
John T

28
$ id [username]

" $: Command not found".
Tomas Aschan,

8
La $rappresenta la riga di comando. Inizia a digitare con id.
Coneslayer

Non mi dà ancora molto:uid=[five digits](kcz) gid=30(usr)
Tomas Aschan il

sta mostrando uid = gid = groups = quindi la terza cosa che sto ricevendo è la lista dei gruppi a cui appartiene un utente.
MKJ

6

L'ho trovato - molto dopo, ma l'ho fatto! =)

Proprio come

$>pts m [group name]

elenca tutti i membri di un gruppo,

$>pts m [user name]

elenca tutti i gruppi di cui un utente è membro. Era troppo semplice: P


3
pts non è un comando standard.
user2284570,

1
@ user2284570: forse no. Ma è stato chiaramente affermato nella domanda (la prima cosa, in effetti, e con l'evidenziazione della sintassi) che è ptsquesta domanda che riguarda.
Tomas Aschan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.