Прошу прощения, что это несколько непоследовательно, но, надеюсь, кто-то сможет понять это, чтобы понять, чего я пытаюсь достичь, и предоставить указатели.
У меня есть машина с двумя сетевыми интерфейсами, подключенными к двум разным сетям (одна из которых предоставляет несколько других сервисов, например DNS), на которой работают два отдельных экземпляра Samba, по одному привязанному к каждому интерфейсу. Один из примеров - это просто настройка в стиле рабочей группы с использованием аутентификации на уровне общего ресурса, которая работает нормально.
Проблема в том, что я хочу присоединить другой экземпляр к домену MS Active Directory (предоставляемому MS Windows Small Business Server 2003), чтобы позволить подмножеству пользователей домена получать доступ к общим ресурсам с компьютеров Windows в другой сети.
Пользователи, которым нужен доступ из среды домена, имеют учетные записи (имена которых представляют собой строчные версии их имен пользователей домена) на машине, на которой запущена Samba, но я не уверен, как сопоставить UID, и все, что я прочитал, касается аутентификации учетные записи на этой машине для AD или другого сервера LDAP. Чтобы уточнить: я хочу, чтобы учетные данные для пользователей AD, получающих доступ к экземпляру Samba, не входящему в рабочую группу, были аутентифицированы в AD, а не в учетных записях на машине, на которой запущена Samba.
Надеюсь, это достаточно ясно.
РЕДАКТИРОВАТЬ: помимо возможности доступа к общим ресурсам Samba из AD, мне также нужно иметь доступ к общему ресурсу в домене с машины, на которой запущена Samba, но все же хотелось бы, чтобы все, не связанное с Samba, аутентифицировалось локально.
Вы можете сделать это довольно легко. Вам необходимо выполнить все шаги по настройке пользователей для аутентификации в Linux через AD (конфигурация KRB, присоединение к домену), вплоть до того, что бот НЕ включает изменения PAM. Затем вы просто настраиваете SAMBA на использование winbind в качестве источника аутентификации. Вот старая копия smb.conf, которую я использовал для достижения того же эффекта:
#======================= Global Settings =====================================
[global]
# Domain Authntication Settings
workgroup = <my domain>
server string = <Sever String>
security = ads
passdb backend = tdbsam
realm = <mydomain.com>
client use spnego = yes
ldap ssl = no
# logging
log level = 5
max log size = 50
# logs split per machine
log file = /var/log/samba/%m.log
# max 50KB per log file, then rotate
; max log size = 50
# User settings
username map = /etc/samba/smbusers
idmap uid = 10000-20000000
idmap gid = 10000-20000000
idmap backend = ad
; template primary group = <ad group>
template shell = /sbin/nologin
# Winbind Settings
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind netsted groups = Yes
winbind nested groups = Yes
winbind use default domain = Yes
#Other Globals
unix charset = LOCALE
server string = <my server name>
load printers = no
printing = cups
cups options = raw
; printcap name = /etc/printcap
#obtain list of printers automatically on SystemV
; printcap name = lpstat
; printing = cups
#============================ Share Definitions ==============================
[share]
comment = <share comment>
path = /srv/smb/share
guest ok = yes
valid users = "DOMAIN+testUser"
read only = yes
Кроме того, если вы используете Ubuntu, в версии, которая была в 10.04LTS несколько месяцев назад, есть ошибка, которая полностью нарушила эту настройку (никто не может авторизоваться) - возьмите версию с сайта SAMBA, если это так.