Есть домен Active Directory, есть Samba 3.6.18, настроенная как сервер в составе этого домена. Нужно разрешить пользователям подключаться к ресурсам, даже если пользователь заходит с компьютера, не введенного в домен.
Конфиг самбы:
[global]
dos charset = 866
workgroup = DOMAIN
realm = DOMAIN
server string = %h server (Samba)
security = ADS
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
name resolve order = wins bcast
load printers = No
disable spoolss = Yes
show add printer wizard = No
dns proxy = No
panic action = /usr/share/samba/panic-action %d
template homedir = /data/samba/%U
; winbind use default domain = Yes
; map untrusted to domain = Yes
idmap config DOMAIN : range = 10000-200000
idmap config DOMAIN : backend = tdb
idmap config * : range = 9000-9999
idmap config * : backend = tdb
[Public]
comment = Fileshare
path = /pub
valid users = @DOMAIN\smbusers
read list = @DOMAIN\smbusers
write list = @DOMAIN\smbusers
read only = No
create mask = 0777
Закомментированные опции пробовал раскомментировать в разных комбинациях, эффекта 0. Вроде бы на поведение при аутентификации должны влиять именно они. В частности, при включенной опции «winbind use default domain» удалось логиниться в систему по имени доменного пользователя, если еще указать «template shell = /bin/bash». Но к ресурсам все равно не пускает, логи такие:
1) map untrusted to domain = no =>
"check_ntlm_password: sam authentication for user [ user ] FAILED with error NT_STATUS_NO_SUCH_USER
Not using winbind, requested domain [SRV] was for this SAM.
2) map untrusted to domain = yes =>
Got user=[ user ] domain=[WORKGROUP] workstation=[CLIENT] len1=24 len2=128
Mapping user [WORKGROUP]\[ user ] from workstation [CLIENT]
Mapped domain from [WORKGROUP] to [DOMAIN] for user [ user ] from workstation [CLIENT]
check_ntlm_password: winbind authentication for user [ user ] FAILED with error NT_STATUS_NO_SUCH_USER"
При этом:
user@kiborg:~$ smbclient //srv/Public -U DOMAIN\\user
Enter DOMAIN\user's password:
Domain=[DOMAIN] OS=[Unix] Server=[Samba 3.6.18]
smb: \> quit
user@kiborg:~$ smbclient //srv/Public -U user
Enter user's password:
session setup failed: NT_STATUS_LOGON_FAILURE
wbinfo -u и wbinfo -g всё что нужно показывают, net ads info тоже работает нормально. Что интересно: wbinfo -a user проходит plaintext проверку пароля, а вот challenge-response проходит только если запустить через sudo. wbinfo -a DOMAIN\\user проходит проверку в обоих случаях всегда.
Какие есть идеи?
А, забыл еще. Почему-то «getent passwd» не показывает пользователей из домена, хотя «getent passwd user» показывает инфу о доменном пользователе user. Та же фигня с «getent group».