Я использую аналогично для аутентификации в домене Windows на ноутбуке под управлением Ubuntu 10.04. Кажется, все работает хорошо, кроме одной вещи.
Обычно, после загрузки машины, я получаю экран входа в систему (я думаю, gdm), который перечисляет несколько учетных записей. Моя личная учетная запись не указана в /etc /passwd, но обычно она появляется, и я просто нажимаю на нее, набираю пароль и вход в систему.
Но около 50% всех загрузок приводят к тому, что мое имя пользователя отсутствует в списке gdm. Если я нажимаю «Другое ...» и ввожу свое имя пользователя или мой ДОМЕН \ имя пользователя, аутентификация всегда будет запрещена. Я вообще не могу войти с этим пользователем, хотя другие «локальные» пользователи работают.
Похоже, что текущим решением проблемы является перезагрузка ноутбука, и, если повезет при следующем запуске gdm, мое имя пользователя будет видно, и я могу войти в систему.
Я уже попробовал несколько предложений:
- установите источник времени ntp на тот же сервер, что и на контроллере домена, так как есть предположения, что клиент Kerberos очень строг с точки зрения синхронизации. Это, похоже, не решило проблему
- создать учетную запись локального пользователя с тем же UID. Это приводит к тому, что мое имя всегда появляется в списке пользователей gdm, но примерно половина времени моя попытка аутентификации отклоняется, и мне приходится перезагружаться
Этот второй пункт особенно мне кажется, что что-то закулисное не может правильно инициализироваться после загрузки. Если оставить его в покое на несколько минут, это не изменит поведение - только перезагрузка, похоже, исправит это.
После неудачного входа в систему /var/log/auth.log сообщает:
gdm-session-worker[1477]: pam_succeed_if(gdm:auth): error retrieving information about user <DOMAIN>\<username>
gdm-session-worker[1477]: pam_unix(gdm:auth): check pass; user unknown
gdm-session-worker[1477]: pam_unix(gdm:auth): authentication failure; logname= uid=0 euid=0 tty=:0 ruser= rhost=
Также в /var /log /syslog я вижу:
gdm-session-worker[1477]: [module:pam_lsass]pam_sm_authenticate error [login:<DOMAIN>\<username>][error code:2]
Еще немного копания - кажется, что когда имена пользователей исчезают, процесс lsassd отказался запускаться. Кроме того, в этой ситуации попытка перезапустить lsassd не удалась, но я не могу найти способ диагностировать это. Но кажется, что вышеупомянутая проблема вызвана (или, по крайней мере, связана) с неспособностью lsassd запускаться.
Потом...
Определив, что lsassd не запускается, я попытался запустить его вручную из консоли с помощью:
$ sudo /usr/sbin/lsassd --loglevel debug
Кажется, что он работает около 12 секунд и выдает следующее:
20100804112201:VERBOSE:0x7fd589e03760:[lsassd_main() libmain.c:132] Logging started 20100804112201:INFO:0x7fd589e03760:[LsaSrvVerifyNetLogonStatus() libmain.c:364] LsaSrvVerifyNetLogonStatus call to LWNet API returned 2 20100804112201:DEBUG:0x7fd589e03760:[LsaSrvVerifyNetLogonStatus() libmain.c:365] Error code: 2 (symbol: ERROR_FILE_NOT_FOUND) -- repeats 11 times -- 20100804112213:ERROR:0x7fd589e03760:[LsaSrvStartupPreCheck() libmain.c:307] LSA start up pre-check failed to be able to use NetLogonD after 12 seconds of waiting [Code:40116] 20100804112213:DEBUG:0x7fd589e03760:[LsaSrvStartupPreCheck() libmain.c:308] Error code: 40116 (symbol: LW_ERROR_FAILED_STARTUP_PREREQUISITE_CHECK) 20100804112213:ERROR:0x7fd589e03760:[LsaSrvStartupPreCheck() libmain.c:350] LSA Process exiting due to error checking hostname at startup [Code:40116] 20100804112213:DEBUG:0x7fd589e03760:[lsassd_main() libmain.c:158] Error code: 40116 (symbol: LW_ERROR_FAILED_STARTUP_PREREQUISITE_CHECK) 20100804112213:ERROR:0x7fd589e03760:[lsassd_main() libmain.c:240] LSA Process exiting due to error [Code:40116] 20100804112213:DEBUG:0x7fd589e03760:[LsaSrvLogServiceFailureEvent() lsaevent.c:338] Error code: 382312514 (symbol: ) 20100804112213:VERBOSE:0x7fd589e03760:[LsaSrvLogServiceFailureEvent() lsaevent.c:357] Failed to post service failure event. 20100804112213:VERBOSE:0x7fd589e03760:[LsaSrvLogServiceFailureEvent() lsaevent.c:358] Error code: [382312514] 20100804112213:VERBOSE:0x7fd589e03760:[lsassd_main() libmain.c:208] Lsa main cleaning up 20100804112213:INFO:0x7fd589e03760:[lsassd_main() libmain.c:224] LSA Service exiting...
Глядя на исходный код libmain.c, первая ошибка, кажется, сразу после вызова функции:
LWNetGetCurrentDomain()
Может быть, какая-то проблема в общении с контроллером домена? Как можно было бы отладить LWNet?