L'elenco dei gruppi è fornito sotto Groups
in /proc/
/status
; ad esempio,
$ grep '^Groups' /proc/$$/status
Groups: 4 24 27 30 46 110 115 116 1000
Il gruppo principale è indicato sotto Gid
:
$ grep '^Gid' /proc/$$/status
Gid: 1000 1000 1000 1000
ps
è anche in grado di mostrare i gruppi di un processo, come indicano le altre risposte.
Per l'ID di gruppo effettivo, l'ID di gruppo reale e gli ID di gruppo supplementari (usati per il controllo dell'accesso):
ps -o gid,rgid,supgid -p "$pid"
gid
e rgid
sono abbastanza portatili, supgid
meno (tutti e 3 sarebbero disponibili con ps
da procps come si trova tipicamente sui sistemi basati su Linux).
group
, rgroup
e supgrp
può essere utilizzato per tradurre gli ID di gruppo in nomi di gruppo, ma tieni presente che per gli ID di gruppo che hanno diversi nomi di gruppo corrispondenti, ne verrà mostrato solo uno (come per ls -l
rispetto a ls -n
o qualsiasi cosa che abbia a che fare con nomi di utenti o gruppi basati su ID).
Per l'id del gruppo di processi (utilizzato per il controllo del lavoro del terminale):
ps -o pgid -p "$pid"
Per memorizzarlo in una variabile:
pgid=$(($(ps -o pgid= -p "$pid")))
Usando ps
:
$ ps -o group,supgrp $$
GROUP SUPGRP
muru adm,cdrom,sudo,dip,www-data,plugdev,lpadmin,mlocate,sambashare,lxd,libvirtd,docker,muru
Da man ps
, le colonne di output utilizzate per -o
:
egid EGID effective group ID number of the process as a
decimal integer. (alias gid).
egroup EGROUP effective group ID of the process. This will be
the textual group ID, if it can be obtained and
the field width permits, or a decimal
representation otherwise. (alias group).
gid GID see egid. (alias egid).
group GROUP see egroup. (alias egroup).
supgid SUPGID group ids of supplementary groups, if any. See
getgroups(2).
supgrp SUPGRP group names of supplementary groups, if any. See
getgroups(2).