※ 引述《stephen7710 (YA)》之銘言:
: 我記得我是用my $user_name = getpwuid($uid);
: print 出來的 $uid 是0或1或2之類的
: 然後去/etc/passwd 看確實對應的就是root那些的
: 不過並不是我ls看到的owner
UNIX 允許不同的 user 對應到同一個 uid
例如
usera:x:1000:...
userb:x:1000:...
userc:x:1000:...
ls 時 owner 會顯示某一個 (例如 userc)
: /etc/passwd 下也沒有一般的使用者列表
有可能其它使用者放在 NIS 或 ldap 裡
看一下 /etc/nsswitch.conf 裡 passwd 的設定
可以用 getent passwd 看一下完整的列表
我猜那個檔案的 owner uid
在 /etc/passwd 和 NIS 或 ldap 裡都有
然後 ls 顯示是抓 NIS 或 ldap 裡那個
所以你在 /etc/passwd 裡找不到
作者:
CindyLinz (Cindy Wang)
2014-10-17 11:40:00原來是這樣 :p
謝謝兩位的回應 後來我先把ls的資訊寫到一個檔案裡再用正規表示式去擷取字串做處理
作者:
flu (Crazy Rhythm)
2014-10-23 02:40:00不曉得把腳本拿到「單純」的系統去執行結果會如何比方說剛安裝完成的任意linux distro
作者:
xatier (一切重來就好了...)
2014-10-27 12:02:00當然可以不同的 user 對應到同一個 uid 都可以改成 0 XD
作者:
CindyLinz (Cindy Wang)
2014-10-27 13:39:00改成0不太好吧@_@" 好像有聽說有的程式是用uid==0來判斷有沒有 root 權限... 樓上作這種建議真是太壞惹!
作者:
xatier (一切重來就好了...)
2014-10-29 17:57:00應該是說,root 權限本來就是看 uid 是不是 0 XD因為可以把名字叫作 root 的人幹掉,然後開個 uid 是 0 的真。root XD