2

Я использую аналогично для аутентификации в домене 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?

0