我正在嘗試使用C獲取Unix文件的所有者名稱。我發現的唯一方法是使用stat(),然後使用getpwuid(stat.st_uid)。但是,它只會返回帶有該uid的第一個用戶名,其中密碼文件中的用戶可以具有相同的uid。顯然,這是不可接受的,不能被信任。如何使用C獲得Unix文件的所有者
參考文獻:
所有者從密碼文件recievd: http://pubs.opengroup.org/onlinepubs/007904875/functions/getpwuid.html
UID是在密碼文件中找到: http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/
的Unix允許多個用戶擁有相同的UID: http://www.e-reading.org.ua/htmbook.php/orelly/networking/puis/ch04_01.htm
有沒有準確的方法或更低層次的方式,某種查找表,這將保證我準確的結果?
這不可信嗎?在傳統的Unix權限中,所有者的UID確實與inode存儲在一起,是的,一個UID可以匹配多個用戶。另外,它可能不在密碼文件中,它取決於大多數現代Unix系統上的nsswitch配置。 – fge
我要通過我在互聯網上發現的信息來獲得這一點。我已經閱讀getpwuid()從密碼文件中獲取它的信息。我也讀過它發現的第一個uid。不止一個人可以擁有相同的uid。我有錯誤的信息嗎? – cxx6xxc
這裏是說它從哪裏得到uid:http://pubs.opengroup.org/onlinepubs/007904875/functions/getpwuid.html – cxx6xxc