有没有办法检索正在运行的进程的 UID/GID?目前,我知道在 htop 中查找它的唯一方法。但我不想依赖第三方工具,更喜欢使用内置的unix命令。您能推荐一些有用的单线吗?
这并不能满足我的好奇心:
顶部仅显示用户而不显示组。
答案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 ...