X

Linux 查詢 sudo PID 的 UID

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 是哪個使用者執行的

  1. 假設 PID 是 1234 ( ps aux | grep vim 找到 PID)
  2. sudo cat /proc/1234/loginuid # 1001
  3. id 1001 # 或者 id -nu 1001 # 直接印出 username
    • uid=1001(username) gid=1001(user-group) groups=1001(username),27(sudo)
  4. 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
Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post