Как я могу получить идентификатор учетной записи из имени пользователя в Mac OS X?

Я использую MacFUSE для создания классной файловой системы. Я хотел бы установить атрибуты NSFileOwnerAccountID и NSFileGroupOwnerAccountID для файлов на нем, но базовая структура, которую я использую, дает мне только имена пользователей.

Как я могу получить идентификатор учетной записи из имени учетной записи в Mac OS X с помощью Cocoa или других встроенных платформ?


person zneak    schedule 16.11.2010    source источник


Ответы (2)


Это просто номера UID и GID. Попробуйте функции getpwnam (для пользователя) и getgrnam (для группы); каждый возвращает структуру, содержащую, среди прочего, идентификационный номер.

В качестве альтернативы просто используйте версии NSFileOwnerAccountName и NSFileGroupOwnerAccountName вместо версий …AccountID.

person Peter Hosey    schedule 16.11.2010
comment
MacFuse абсолютно хочет версии AccountID. - person zneak; 17.11.2010
comment
@zneak: Черт. Что ж, эти две функции должны работать для их получения. - person Peter Hosey; 17.11.2010

Что вы можете сделать, так это получить список всех CSIdentity объекты и построить сопоставление "имя пользователя с личностью". Когда у вас есть объект идентификации, вы можете получить от него кучу другой информации.

Больше информации:

person Dave DeLong    schedule 16.11.2010
comment
Инфраструктура совместной работы (ссылка из Руководства по программированию Identity Services), вероятно, будет проще в использовании. - person zneak; 17.11.2010