Службы каталогов для Сервера OS X v10.5 Информация о версии

Этот документ описывает изменения, обновления и обходные решения для Служб каталогов для Сервера OS X v10.5.

Содержание:

Преобразование сценариев для Leopard

Следующие команды больше не доступны в Leopard:

Вот пример сценария, который не будет работать в Leopard, потому что это использует использование nigrep и nicl команды. Сценарий предназначается для удаления кэшируемых учетных записей мобильного пользователя из локального узла.

 
# Script to remove cached accounts in the local DS node
# Run this script as root or with sudo
# This will not run in Leopard!
#!/bin/sh
 
 
nigrep 'LocalCachedUser' / /users | while read dirid userpath authauth authtype; do            # get a list of all users with authauthority containing "LocalCachedUser"
    echo $userpath | tr -d : | while read nipath; do                                        # figure out the path to the record in the local node
        nicl / -delete $nipath                                                                # delete the cached account
    done
done

Сделать ту же вещь без nigrep и nicl, мы занимаем место dscl:

 
# Script to remove cached accounts in the local DS node
# This should work in both Tiger and Leopard
# Run this script as root or with sudo
#!/bin/sh
 
# dscl searching only does exact matches.  So we list the records and pipe them through to grep to find the list of records we want.  The first column will be the username and we get that using awk.
# We also remove the line endings with tr to make it one long string.
 
for cuser in `dscl . -list /Users AuthenticationAuthority | grep LocalCachedUser | awk '{print $1}' | tr '\n' ' '`; do
    dscl . -delete /Users/$cuser                    # now we delete the record using dscl
done

Проверка/Управление DS SearchPath от CLI

Для наблюдения, какие узлы находятся в пути поиска можно использовать команду dscl /Search -read / и посмотрите то, что перечислено для CSPSearchPath атрибут. Добавить узлы к пути поиска:

 
dscl /Search -create / SearchPolicy CSPSearchPath
dscl /Search -append / CSPSearchPath /Active\ Directory/All\ Domains

Не забывайте выходить из пробелов с наклонной чертой влево или кавычками использования вокруг значений с пробелами (» / Активные Домены Каталога/Всего»). Для изменения порядка узлов измените индекс узла в CSPSearchPathсписок:

 
dscl localhost changei /Search CSPSearchPath 1 /LDAPv3/moof.apple.com
dscl localhost changei /Search CSPSearchPath 2 /LDAPv3/foom.apple.com

Индексация запускается в 0, но узел в индексе 0 всегда будет локальным узлом. Это не доступно для редактирования. Индекс 1 является первым нелокальным узлом в списке. В вышеупомянутом примере Ваш путь аутентификации был бы:

Локальный узел по умолчанию (Netinfo или DSLocal)

/LDAPv3/moof.apple.com

/LDAPv3/foom.apple.com

Удаление «DisabledUser» кэшируемые учетные записи Script-o-matically

 
# This should work in both Tiger and Leopard
# Run this script as root or with sudo
#!/bin/sh
for cuser in `dscl . -list /Users AuthenticationAuthority | grep DisabledUser | awk '{print $1}' | tr '\n' ' '`; do
    dscl . -delete /Users/$cuser
done

Включение отладки DS

sudo killall -USR1 DirectoryService

Начните отлаживать автоматически при запуске:

touch /Library/Preferences/DirectoryService/.DSLogDebugAtStart

Файл журнала:

/Library/Logs/DirectoryService/DirectoryService.debug.log

Аутентификация клиента NTLM/SMB к Контрольному списку AD

Тестирование аутентификации пользователя против узла каталога:

Стандартная аутентификация:

dirt -u username -p password

ntlm аутентификация:

dirt -u username -p password -a nt

Поиск и устранение неисправностей:

- Выполненный dsconfigad -enablessoпосле привязки

- Проверьте следующие опции в /etc/smb.conf

 
workgroup = ETS                    # this should be the netbios name of your AD domain
security = ads                    # use "ads" for this value -- "domain" will periodically change the computer trust account and break your binding to AD
netbios name = bog                # this should be the same as the computer name you used in Directory Access/Directory Utility to bind to AD
use spnego = yes                # this should always be "yes" -- it enables negotiation of the authentication methods
realm = ETS.APPLE.COM            # This should be your AD domain in all caps -- it is case sensitive!

- Проверьте, что winbindd работает на Сервере OS X. Должно быть 2 процесса. Если это не, запустите его: /usr/sbin/winbindd -s /Library/Preferences/DirectoryService/winbindd.conf

- Проверьте, что самба и плагин AD используют тот же пароль доверительного счета машины.

Шаг 1: Получите пароль, который использует плагин AD: В /Library/Preferences/DirectoryService/ActiveDirectory.plist файл, ищите раздел, который похож: 

 
<key>AD Computer Password</key>
<data>
ZW5jb2RlIG1lCg==
</data>

Шаг 2: поле данных здесь является закодированным base64. Декодируйте его:  

echo "ZW5jb2RlIG1lCg==" | openssl enc -base64 -d

Шаг 3: Теперь сравните его со значением, сохраненным самбой в /var/db/samba/secrets.tdb:

sudo tdbdump /var/db/samba/secrets.tdb

Необходимо видеть запись, которая похожа: 

 
{
key = "SECRETS/MACHINE_PASSWORD/ETS"
data = ",X2IgQ9sIgpByU"
}

Если значение данных здесь не соответствует значение, Вы добрались от шага 2, сбросьте его:

sudo net -f changesecretpw

Когда запрошено пароль, введите значение, возвращенное шагом 2.