我需要编写一个必须与Mac OS X 10.6 Snow Leopard配合使用的身份验证模块 同时需要符合POSIX标准。
我在这里阅读:developer.apple.com/leopard/overview/osfoundations.html
自Mac OS X 10.5 Leopard以来,Mac OS X符合POSIX标准(至POSIX 1003.1), 但是在我自己的MAC OS X 10.5 Leopard下工作,我找不到任何用户名的痕迹 既没有在/ etc / passwd中,也没有在/etc/master.passwd中,后者在这里提到:developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man5/passwd.5.html
相反,它在两个文件中都说使用OpenDirectory Service,它应该是OpenLDAP 根据OpenDirectoryService手册页。
这仍然符合POSIX标准吗?我猜不会。我想知道Mac OS X将如何处理我的问题 100%符合POSIX标准的代码,取决于/ etc / passwd?
如果有人能够解释这对我有用的方式,我将不胜感激。
感谢您的时间和麻烦。
祝你好运
菲尔。
答案 0 :(得分:2)
我不认为POSIX(或至少POSIX 1003.1)涵盖用户和密码的存储方式 - 请查看POSIX Wikipedia page以快速了解是什么覆盖。
答案 1 :(得分:1)
您可以使用getpwuid
中的getpwnam
或pwd.h
个功能来搜索用户名/ ID。它是1003.1标准的一部分。
答案 2 :(得分:0)
看起来POSIX没有涵盖这一点,但大多数主要的Unices最近似乎使用PAM
。您可以尝试使用PAM来验证如何对用户进行身份验证...