我正在尝试使用C语言获取Unix文件的所有者名称。唯一找到的方法是使用stat(),然后getpwuid(stat.st_uid)。但它只返回具有该uid的第一个用户名,而密码文件中的用户可能具有相同的uid。显然,这是不可接受的,不能信任。
参考资料: 所有者从密码文件中接收: 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
参考资料: 所有者从密码文件中接收: 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
有没有一种准确的方式或更低级的方式,某种查找表可以保证我得到准确的结果?
/etc/nsswitch.conf
和getent
命令(服务passwd
)。 - fge