Числовые UID /GID в ACL на сервере OS X (10.6)

На одном (старый OS X 10.4) сервере я собираю некоторые файлы с ACL. Затем я использую tar -xp, чтобы распаковать архив на новый сервер 10.6, на котором пока нет настроенных пользователей / групп, кроме администратора по умолчанию (UID 501) (есть причина для этого, не спрашивай!) Очевидно, это означает, что "ls -lne" будет перечислять файлы и ACL с числовыми UID и GID.

Теперь для нормальных прав доступа к файлам это имеет смысл: вы получаете идентификаторы типа "1037". И для некоторых ACL это также имеет смысл: вы получаете такие вещи, как "AAAABBBB-CCCC-DDDD-EEEE-FFFF00000402" для групп (0x402 = GID 1026) и "FFFFEEEE-DDDD-CCCC-BBBB-AAAA000001F5" для пользователей (0x1F5 = UID 501).

Однако некоторые списки ACL имеют идентификаторы UID, такие как "E51DA674-AE70-41BC-8340-9B06C243A262" или идентификаторы GID, например "0A3FCD24-0012-46FA-B085-88519E55EF29", и я абсолютно не знаю, как преобразовать эти идентификаторы обратно в нечто, что могло бы сопоставлены с исходными идентификаторами (UID 1072 и GID 1047 соответственно в этом примере).

Может ли кто-нибудь помочь мне перевести эти странные длинные шестнадцатеричные строки?

(В основном мы переходим от локальных пользователей к настройке Active Directory, поэтому я хочу переместить все файлы на новый сервер с сохраненными правами доступа, затем chmod, chgrp и установить ACL так, чтобы мы преобразовывали старые идентификаторы в новые идентификаторы AD. Следовательно Мне нужен какой-то способ для отображения между наборами. Я не верю, что есть более простой способ сделать это?)

Большое спасибо,

Оливер.

1 ответ

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

Чтобы найти шестнадцатеричную строку (среди прочего) для пользователя, используйте эту команду: dscl /Search -read /Users/oliver GeneratedUID UniqueID 'dsAttrTypeNative: данное Name'

Чтобы перечислить все сгенерированные UID:

  dscl  /Search -list  /Users GeneratedUID 

Чтобы перечислить все уникальные идентификаторы ("нормальные" идентификаторы)

  dscl  /Search -list  /Users UniqueID

Надеюсь, что это поможет (может быть, не вы больше, но это появляется в Google, так что кто-то еще может найти это полезным).

Я.

Другие вопросы по тегам