如何确定正在运行的进程的 UID/GID

如何确定正在运行的进程的 UID/GID

有没有办法检索正在运行的进程的 UID/GID?目前,我知道在 htop 中查找它的唯一方法。但我不想依赖第三方工具,更喜欢使用内置的unix命令。您能推荐一些有用的单线吗?

这并不能满足我的好奇心:

如何以编程方式检索正在运行的进程的 GID

顶部仅显示用户而不显示组。

答案1

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

或者

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

或者仅使用 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

答案2

或者假设一个 *BSD 系统(因为它ps是不可移植的,而且 OpenBSD 已经放弃了/proc很多版本)

ps -o uid,gid -p ...

相关内容