Bul*_* M. 3 permissions top unix-philosophy uid
有没有办法检索正在运行的进程的 UID/GID?目前,我只知道在 htop 中查找它的方法。但我不想依赖第三方工具,更喜欢使用内置的 unix 命令。你能推荐几个有用的oneliners吗?
这并没有满足我的好奇心:
top 只显示用户而不显示组。
Ipo*_*cer 13
$ stat -c "%u %g" /proc/$pid/
1000 1000
Run Code Online (Sandbox Code Playgroud)
或者
$ egrep "^(U|G)id" /proc/$pid/status
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
Run Code Online (Sandbox Code Playgroud)
或仅使用 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
Run Code Online (Sandbox Code Playgroud)
或者假设一个 *BSD 系统(因为它ps
是不可移植的,而且 OpenBSD 已经放弃了/proc
很多版本)
ps -o uid,gid -p ...
Run Code Online (Sandbox Code Playgroud)