Linux 要查詢某個 Process ID (PID) 的 User (UID) 是誰?
ps aux | grep $pid、/proc/$PID/status,都會拿到 root 或 sudo 的 id,要怎麼找到是哪個使用者執行的呢?
- 註:想要找到此 Process 是誰執行的,看到 sudo、root 都沒救,需要找到最原始的執行者
Linux 查詢 sudo PID 的 UID
由 /proc/$PID/loginuid 可以看到此 Porcess ID 是哪個使用者執行的
- 假設 PID 是 1234 ( ps aux | grep vim 找到 PID)
- sudo cat /proc/1234/loginuid # 1001
- id 1001 # 或者 id -nu 1001 # 直接印出 username
- uid=1001(username) gid=1001(user-group) groups=1001(username),27(sudo)
- id -nu `cat /proc/1234/loginuid` # username
- username
寫 Bash function pid-username() 來查詢
pid-username() { if [ -n "$1" ]; then # $1 not null id -nu "$(</proc/"$1"/loginuid)" fi }
使用 pid-username() Function
- pid-username $pid
- username