
У нас странная проблема с samba, затрагивающая только одного пользователя. Наша настройка samba следующая:
Red Hat Enterprise Linux Server, выпуск 5.4 (Tikanga) — сервер Samba
Samba версии 3.0.33-3.14.el5 - Samba версия
Контроллер домена WIN2008R2 Standard - Windows DC
Windows 7 64 бит - Клиентские ПК
Пользователь упомянул, что столкнулся с этой проблемой после того, как принудительно выключил свой ПК несколько недель назад. По праву, для всех пользователей, когда мы получаем доступ \\sambaservername
в Windows, он покажет все общие ресурсы на сервере Samba, но для этого пользователя, как только он включит свой ПК, он не сможет получить доступ \\sambaservername
, сообщение об ошибке
Windows не может получить доступ
\\sambaservername
Текущий способ решения проблемы:
Попробуйте получить доступ к одному ресурсу, \\sambaservername
например \\sambaservername\sharedfolder1
, . Но даже при этом сначала возникнет ошибка, сообщение об ошибке следующее
Ошибка входа: неизвестное имя пользователя или неверный пароль.
пользователю необходимо снова ввести учетные данные, и он сможет получить доступ к общему ресурсу. После этого он сможет получить доступ \\sambaservername
без каких-либо проблем. Но как только он перезагрузит свой компьютер, проблема сохранится.
Устранение неполадок, выполненное на данный момент:
Убедитесь, что выполнены следующие настройки:
Перейдите в: Панель управления → Администрирование → Локальная политика безопасности Выберите: Локальные политики → Параметры безопасности
«Сетевая безопасность: уровень аутентификации LAN Manager» → Отправлять ответы LM и NTLM «Минимальная безопасность сеанса для NTLM SSP» → снимите флажок: Требовать 128-битное шифрование
Посоветуйте пользователю сбросить пароль и повторить попытку, но проблема все еще сохраняется.
Попробовал свой аккаунт на ПК пользователя, проблем нет. Попробовал аккаунт пользователя на нескольких других ПК с Windows 7, включая мой, но проблема все еще сохраняется. В Windows XP такой проблемы нет.
Убедитесь, что на ПК с Windows 7 нет сохраненных учетных данных. Проверьте диспетчер учетных данных в Панели управления, а также введите эту команду
rundll32.exe keymgr.dll, KRShowKeyMgr
Перезапустил демон winbindd на сервере Samba, но безрезультатно.
Я подозреваю, что это из-за какой-то проблемы с кэшированием, но не уверен, где именно. Всякий раз, когда у пользователя возникает ошибка доступа \\sambaservername
, на сервере samba будут регистрироваться следующие ошибки:
[2012/10/10 17:10:26, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
Но после обхода ошибок больше не будет. Подозреваю, что после прочтения статьи, указанной ниже, необходимо внести некоторые поправки в каталог \var\samba\cache
:
- http://www.linuxquestions.org/questions/linux-server-73/getent-passwd-dont-show-ad-groups-and-users-745829/
- http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/tdb.html
- http://lists.samba.org/archive/samba/2010-May/155521.html
- http://lists.samba.org/archive/samba/2011-March/161912.html
- http://lzeit.blogspot.sg/2009/10/samba-shares-inaccessible-after-power.html
Сервер Samba используют несколько пользователей, и я хотел бы решить эту проблему без каких-либо последствий.
Я увидел следующую статью:
«winbind offline logon (G)» Этот параметр предназначен для управления тем, должен ли Winbind разрешать вход в систему с помощью модуля pam_winbind с использованием кэшированных учетных данных.Если включено, winbindd будет сохранять учетные данные пользователей, полученные в результате успешных входов в систему, в зашифрованном виде в локальном кэше.
По умолчанию: автономный вход в систему winbind = false
Пример: winbind offline logon = true "
Есть идеи, как удалить запись для одного пользователя в локальном кэше?
решение1
Я не уверен, чтоnbtstat -R
команда (которая«очищает и перезагружает таблицу имен удаленного кэша».) или nbtstat -RR
тот (который«отправляет пакеты освобождения имен на WIN-серверы, а затем запускает Refresh».) может сделать все, чтобы обеспечить желаемый вами тип обновления...
Если вы хотите ознакомиться с руководством,Смотри сюда..
решение2
Проверьте, синхронизирован ли ntpd с контроллером домена. У меня была та же проблема, пока сегодня я не заметил разницу во времени между проблемным сервером и контроллером домена в 45 минут. После того, как я запустил ntpdate, все заработало.
решение3
По моему опыту, это обычно является результатом дрейфа времени либо на контроллере домена, либо в вашем случае, когда проблема только у одного клиента, на подключающемся клиентском компьютере. Поскольку Kerberos включает параметры, связанные со временем, как в запрос сервера аутентификации, так и в ответ сервера аутентификации (AS_Req и AS_rep), большое расхождение приведет к отклонению токена сеанса.
AS_Req включает время жизни запрошенного токена: AS_REQ = ( PrincipalClient , PrincipalService , IP_list , Lifetime )
AS_Rep включает временную метку DC и примененное время жизни: AS_REP = { PrincipalService , Timestamp , Lifetime , SKTGS }
Таким образом, если отклонение по времени выходит за пределы времени жизни, соединение отклоняется.
ПРЕДПОЛОЖЕНИЕ: Я не смог подтвердить документально, что срок службы указан в минутах, но я думаю, это потому, что у меня была машина, которая работала с перебоями, и единственная причина, которую я мог придумать, была в том, что она была прямо на границе срока службы. Так что около 30 секунд она работала, а затем минута срывалась, и соединения отклонялись.