samba в домене windows 2003 под Debian GNU/Linux
За основу взята статья сыскавшаяся у меня в закладках. ссылок на неё предостаточно, но первичный источник мне искать лениво. Естественно, внесены небольшие изменения под специфику Debian.
Поехали: Система уже стоит, скорее всего Debian Etch. ставим сверху самбу.
Для удобства писать буду от имени root Если работать от пользователя, то перед каждой командой надо ставить sudo
# apt-get update # apt-get install samba winbind krb5-user
Зависимости подтянутся сами
САМОЕ ГЛАВНОЕ!!! перед редактированием любого файла создавайте резервные копии!
Настройка разрешения имен
Надеюсь что на вашем контроллере домена поднят DNS с зонами прямого и
обратного просмотра. Если не поднят, то винадмин сам себе злобный
баклан.
# vi /etc/resolv.conf
search domain.foo nameserver 192.168.0.1
значения подствить свои
на машине с самбой на всякий случай прописываем следующее
# vi /etc/hosts
192.168.0.1 adc.domain.foo adc
файл хостов на контроллере домена трогать не обязательно
Настройка Kerberos.
Часть этого документа использует DOMAIN.FOO прописными буквами.
Удостоверьтесь, что в вашем конфиге krb5.conf правильный регистр! Приводим файл krb5.conf в соответствие с настройками вашей сети(не забывайте про регистр!). # vi /etc/krb5.conf
[libdefaults] default_realm = DOMAIN.FOO
[realms] ADC.DOMAIN.FOO = { kdc = adc.domain.foo }
[domain_realms] .domain.foo = DOMAIN.FOO
После этого выполняем команду(необходимо знать пароль администратора КД):
# kinit admin@DOMAIN.FOO # в случае успешного завершения вывода на консоль не будет.
Возможные проблемы на этом этапе:
kinit: krb5_get_init_creds: Client (Admin@DOMAIN.FOO) unknown Надо проверить правильность ввода логина\пароль админа.
kinit: krb5_get_init_creds: unable to reach any KDC in realm (DOMAIN.FOO) Проверьте правильность настроек DNS и конфига krb5.conf
kinit: krb5_get_init_creds: Clock skew too great Рассинхронизация
времени на КД и клиенте – выполните команду net time set(в linux)
Желательно выполнять данную команду раз в неделю(можно через cron).
Настройка Samba и Winbind: Пожалуй, самая легкая часть настройки. Выкладываю свой реально работающий конфиг: # vi /etc/samba/smb.conf
[global] admin users = admin # обычно не пользуюсь, но себя лучше не прописывать log file = /var/log/samba/log.%m log level = 1 socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 null passwords = true # interfaces = 192.168.0.10/255.255.255.0 # # hosts allow = 192.168.0. 127.0.0.1 # encrypt passwords = yes # шифрованные пароли, шифрованные idmap uid = 10000-40000 idmap gid = 10000-40000 auth methods = winbind # это та самая штука, которая общается с виндовым сервером name resolve order = hosts bcast lmhosts case sensitive = no dns proxy = no netbios name = smbserver server string = %v samba password server = adc.domain.foo realm = DOMAIN.FOO client use spnego = yes client signing = yes local master = no domain master = no preferred master = no workgroup = DOMAIN debug level = 2 security = ads unix charset = UTF-8 # локальная кодировка dos charset = 866 # клиентская кодировка. да, винды всё ещё держат имена файлов в 866 max log size = 50 os level = 0 # это, чтоб самба не брала на себя функции мастербраузера сети # guest access = ok follow symlinks = yes winbind separator = \ winbind uid = 10000-40000 winbind gid = 10000-40000 winbind enum groups = yes winbind enum users = yes winbind use default domain = no
это общаяя часть
можно прописать и шары
[share] comment = data path = /home/data # путь к расшареному каталогу browseable = yes writable = yes create mask = 0664 # файлы в этой шаре будут создаваться с этими правами directory mask = 0777 # каталоги в шаре будут создаваться с этими правами valid users = @"DOMAIN wingroup", "DOMAIN winuser1", "DOMAIN winuser2" write list = "DOMAIN winuser1" read list = @"DOMAIN wingroup", "DOMAIN winuser2" ну примерно так. шара homes неплохо описана с конфиге самбы по умолчанию. ну и не забываем про волшебную команду # man smb.conf там подробно описан каждый параментр конфигурации.
редактируем nsswitch.conf, добавляем то, что написано зелёным # vi /etc/nsswitch.confpasswd: compat winbind group: compat winbind shadow: compat winbind
hosts: files dns Входим в Active Directory
Убедившись, что на контроллере домена нет машин с именем, которое мы использовали в конфиге Samba. Выполняем команду: # net ads join -U winadmin
winadmin's password: Using short domain name -- DOMAIN Joined 'SMBSERVER' to realm 'DOMAIN.FOO' всё, самба-сервер в домене
перезапускаем винбинд и самбу # /etc/init.d/winbind restart
Stopping the Winbind daemon: winbind. Starting the Winbind daemon: winbind. # /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd. Starting Samba daemons: nmbd smbd.
ещё одно. если шара сделана с доступом на запись, то писать в расшареный каталог должно быть разрешено всем. # chmod 777 /home/data будем считать, что он пустой. почему? помните параметры
winbind uid = 10000-40000 winbind gid = 10000-40000
вот из этой поляны назначаются ID пользователей и групп. в системе их нет и заранее знать их нельзя.
Источник: http://mar1ner.livejournal.com/315094.html |