Mac OS X 10.5+和POSIX

4
我需要编写一个认证模块,它必须与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服务,根据OpenDirectoryService手册,应该是OpenLDAP。
这是否仍然符合POSIX标准?我认为不是。我想知道Mac OS X如何处理依赖于 /etc/passwd 的100%符合POSIX标准的代码?
如果有人能向我解释这种工作方式,我将不胜感激。
感谢您的时间和帮助。
最好的问候,
Phil.
3个回答

2

我认为用户和密码的存储方式并不在POSIX(或至少不在POSIX 1003.1)覆盖范围内 - 请查看POSIX维基百科页快速了解POSIX覆盖的内容。


1
您可以使用 pwd.h 中的 getpwuidgetpwnam 函数来搜索用户名称/ID,它是 1003.1 标准的一部分。

0

看起来 POSIX 没有涉及到这个问题,但是 大多数 主要的 Unix 系统似乎现在都使用 PAM。你可以尝试查看如何使用 PAM 对用户进行身份验证...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接