Забавная вещь: вечером заходишь удаленно на свой рабочий компьютер, чтобы кое-что проверить, и видишь, что человек пишет тебе в ICQ. Отключаешься там, включаешься здесь и отвечаешь.
После обновления Samba на RHEL 4 до последнего стабильного релиза (точнее, после удаления старой 3.0.x и установки новой 3.5.4) вылезла фишка, заставившая оперативно погуглить: аутентифицировались все, кроме Windows 98 — остался еще один такой пациент.
Собственно, конфигурация была полностью сохранена, только база паролей преобразована в новый формат:
pdbedit -i smbpasswd:/etc/samba/smbpasswd -e tdbsam:/etc/samba/passdb.tdb
Было в smb.conf:
smb passwd file = /etc/samba/smbpasswd
Стало:
passdb backend = tdbsam
Что случилось с аутентификацией старых клиентов (Windows 98)? Теперь по умолчанию LM hash, использовавшийся до NT, отключен:
lanman auth = no
При этом в логах мы увидим что-то в духе
ntlm_password_check: NO LanMan password set for user <user> (and no NT password supplied)
check_ntlm_password: Authentication for user <user> FAILED with error NT_STATUS_WRONG_PASSWORD
Потребовалось добавить в smb.conf:
lanman auth = yes
Теперь можно перезапустить службу smb. Но этого недостаточно: хэша для нужного пользователя еще не существует. Нужно его создать, заново установив пароль с помощью smbpasswd:
smbpasswd <user>