2010-04-19 3 views
4

Мне нужно запрограммировать модуль аутентификации, который должен работать с Mac OS X 10.6 Snow Leopard и в то же время должен быть совместим с POSIX.Mac OS X 10.5+ и 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 в соответствии с OpenDirectoryServi ce man-page.

Является ли это по-прежнему совместимым с POSIX? Наверное, нет. Интересно, как Mac OS X будет обрабатывать мой 100% POSIX-совместимый код, который зависит от/etc/passwd?

Я был бы признателен, если бы кто-нибудь мог объяснить, как это работает для меня.

Спасибо за ваше время и проблемы.

С уважением

Phil.

ответ

2

Я не думаю так, что пользователи и пароли хранятся охватываются POSIX (или по крайней мере POSIX 1003.1) - посмотреть на POSIX Wikipedia page для быстрого обзора того, что покрыта.

1

Вы можете использовать getpwuid или getpwnam функции от pwd.h для поиска имени пользователя/идентификатора. Он является частью стандарта 1003.1.

0

Похоже, что POSIX не покрывает это, но Большинство основных единиц, кажется, используют PAM в эти дни. Вы можете попробовать проверить, как аутентифицировать пользователей с помощью PAM ...

Смежные вопросы