如果我使用登錄shell作爲根登錄 ,那麼'who'或'users'命令將顯示一個用於root用戶的條目。 但是如果我登錄使用user1和再使用:如何查看已使用'su'的登錄用戶
'su - root'
那麼「誰」和「用戶」命令將不會顯示一個根。
有沒有辦法找出我的系統中是否有登錄用戶當前已切換到root用戶(或任何其他帳戶)?
如果我使用登錄shell作爲根登錄 ,那麼'who'或'users'命令將顯示一個用於root用戶的條目。 但是如果我登錄使用user1和再使用:如何查看已使用'su'的登錄用戶
'su - root'
那麼「誰」和「用戶」命令將不會顯示一個根。
有沒有辦法找出我的系統中是否有登錄用戶當前已切換到root用戶(或任何其他帳戶)?
感謝Davide Berra的回答,我想我已經找到了我正在尋找的東西。
> who | sort -k2 > /tmp/whoresult
> pgrep -x su | xargs -i ps hu -p{} | awk '{printf $7 " ";for (i=11; i<=NF; i++) printf $i " "; printf "\n"}' | sort -k1 | join -1 2 -2 1 /tmp/whoresult -
的輸出是一樣的東西:
pts/3 user1 2013-02-06 16:35 (:0.0) su - root #logged in as user1 and executed 'sudo - root'
pts/5 user1 2013-02-06 16:51 (:0.0) su #logged in as user1 executed 'sudo su'
tty2 root 2013-02-06 17:07 su - user1 #logged in as root and executed 'sudo - user1'
看看/var/log/secure
文件。
搜索一行:
Feb 6 14:12:09 myhost su: pam_unix(su-l:session): session opened for user root by root(uid=999)
的uid
在字符串的結尾是原來的用戶之一。
否則,您可以搜索執行su
命令的shell,並檢查誰是所有者。
pgrep su | \
xargs -i sh -c "ps -p {} -o ppid=" | \
xargs -i ps -p {} -f
結果將是誰的UID正在運行su
我敢肯定有一個更優雅的方法,但沒有更好的在我腦海現在。
更新@MarinosAn先生 –
謝謝你這個答案。這與我想要的非常接近。如果我能找到他們切換到的帳戶(使用su),那就太棒了。 –