La liste des groupes est donnée sous Groups
en /proc/
/status
; par exemple,
$ grep '^Groups' /proc/$$/status
Groups: 4 24 27 30 46 110 115 116 1000
Le groupe primaire est donné sous Gid
:
$ grep '^Gid' /proc/$$/status
Gid: 1000 1000 1000 1000
ps
est également capable d'afficher les groupes d'un processus, comme l'indiquent les autres réponses.
Pour l'identifiant de groupe effectif, l'identifiant de groupe réel et les identifiants de groupe supplémentaires (utilisés pour le contrôle d'accès) :
ps -o gid,rgid,supgid -p "$pid"
gid
et rgid
sont assez portables, supgid
moins (les 3 seraient disponibles avec le ps
de procps que l'on trouve généralement sur les systèmes basés sur Linux).
group
, rgroup
et supgrp
peut être utilisé pour traduire les identifiants de groupe en noms de groupe, mais notez que pour les identifiants de groupe qui ont plusieurs noms de groupe correspondants, un seul d'entre eux sera affiché (comme pour ls -l
contre ls -n
ou tout ce qui traite des noms d'utilisateurs ou de groupes basés sur des identifiants).
Pour l'identifiant du groupe de processus (tel qu'utilisé pour le contrôle des tâches du terminal) :
ps -o pgid -p "$pid"
Pour le stocker dans une variable :
pgid=$(($(ps -o pgid= -p "$pid")))
Utilisation de ps
:
$ ps -o group,supgrp $$
GROUP SUPGRP
muru adm,cdrom,sudo,dip,www-data,plugdev,lpadmin,mlocate,sambashare,lxd,libvirtd,docker,muru
À partir de man ps
, les colonnes de sortie utilisées pour -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).