我一直在读UNIX 环境中的高级编程(Stevenson 和 Rago),我目前正在阅读有关用户数据如何存储在各种系统上的内容,包括 Linux、FreeBSD 和 Mac OS X。
提到的有趣的事情之一是各种用户数据(例如 FreeBSD 和 Mac OS X 上的 UID 和密码)并不遵循与/etc/passwd
大多数/etc/shadow
Linux 发行版相同的存储格式。
我对 Mac OS X 使用的目录服务守护进程以及它如何组织这些数据特别好奇。例如,这个数据库中有哪些字段?操作系统如何使用它来获取权限?开发人员如何与其交互?我似乎找不到太多关于这项服务如何运作的解释,并且对于有关该主题的阅读材料的任何解释或建议将不胜感激。
答案1
Apple Open Directory 是 OpenLDAP 加上 Kerberos 的一个分支,并添加了一些额外的 Apple 酱料。因此,字段可能是典型的 LDAP 条目;我必须四处挖掘,看看他们在哪里以及如何隐藏与 Kerberos 相关的任何内容。该接口将通过任何 Apple 特定的接口(例如,参见 Xcode 下的 API 文档)或通过 Stevens 提到的标准 unix 接口(只是为了与 Apple 的后端正常工作而进行调整)。