Como se pode determinar o UID / GID do processo em execução?

1

Existe alguma maneira de recuperar o UID / GID do processo em execução? Atualmente, só conheço a maneira de procurar no htop. Mas eu não quero depender de ferramentas de terceiros, prefiro usar comandos internos do Unix. Você poderia sugerir alguns oneliners úteis?

Isso não satisfez minha curiosidade:

Como recuperar programaticamente o GID de um processo em execução

top mostra apenas o usuário, mas não o grupo.

    
por Bulat M. 29.12.2016 / 19:12

2 respostas

8
$ stat -c "%u %g" /proc/$pid/
1000 1000

ou

$ egrep "^(U|G)id" /proc/$pid/status
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000

ou com apenas builtins bash:

$ while read -r line;do [ "${line:1:2}" = "id" ] && echo $line;done < /proc/17359/status 
Pid: 17359
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
    
por 29.12.2016 / 19:15
2

Ou assumindo um sistema * BSD (por ps não é portável, e o OpenBSD descartou /proc um monte de lançamentos atrás agora)

ps -o uid,gid -p ...
    
por 29.12.2016 / 19:32