Ключевые слова:samba, win, domain, (найти похожие документы)
From: Morph <http://lug.kmv.ru/index.php?page=morph>
Newsgroups: Кавминводская Группа Пользователей Linux
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Включаем Samba 3 в домен с контроллером домена под Windows 2000 Server
Оригинал: http://lug.kmv.ru/index.php?page=samba3-howto
Написать данную статью мне захотелось, потому что 2 дня я провел перед
машиной, чтобы это гиблое дело заработало. Под рукой было множество
статей(авторы!не принимайте за оскорбление), но ни одна из них не
помогла полностью....
Определяемся:
* Сеть: полностью виндузная, кроме Вас - счастливчика, да гейта в инет,
который нас в этом деле не интересует :)
* Samba: версии 3.0.2a (с winbind)(ставил из дистриба MDK из rpm)
* ОС: Mandrake 10 Official
* Домен: Windows 2000 Server(русский), Active Directory, DNS находится
на этом сервере
* Имя машины под Linux: linux (IP 192.168.0.10)
* Имя домена: DOMAIN.RU
* Имя сервера: Server (IP 192.168.0.2)
* Имя админа сервера: Admin
Имеются права админа на сервере и права рута на Вашей машине ;)
Для начала настаиваем DNS в Windows 2000 Server.
Идем в "Панель управления>Администрирование>DNS"
Добавляем узел: linux в зону domain.ru с ip адресом 192.168.0.2
Все...винда готова.
Надеюсь Samba и winbind уже установлены.
Итак...наполняем /etc/samba/smb.conf:
#smb.conf
[global]
log file = /var/log/samba/log.%m # обязательно ведем логи....без них я
# бы никогда ничего не настроил :)
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #Опции TCP и буферизации
null passwords = yes # Разрешить пустые пароли
encrypt passwords = yes # Шифровать пароли
hosts allow = 192.168.0. 127. # Разрешенные хостыподсети
interfaces = 192.168.0.10/24 # Привязываем самбу к своему интерфейсу(можно указать несколько)
winbind use default domain = yes # Говорим winbind использовать домен по умолчанию
winbind uid = 10000-20000 # Выделяем диапазон UIDов для winbind
case sensitive = no # Отключаем зависимость от регистра имен файлов
dns proxy = no # Не проксировать DNS
netbios name = linux # Имя машины(которое будет с "СЕТЕВОМ ОКРУЖЕНИИ")
server string = My Workstation # Описание машины(необязательно)
password server = pdc, bdc # Названия первичного и вторичного
# контроллера домена (соответствие указывается
# в файле /etc/samba/lmhosts
dos charset = 866 # Кодовая страница
winbind gid = 10000-20000 # Выделяем диапазон GIDов для winbind
local master = no # Не помню что это значит...по моему это даже не нужно...
workgroup = DOMAIN # Имя домена
security = domain # Тип безопасности: домен
unix charset = KOI8-R # Кодовая страница nix
max log size = 50 # Максимальный размер лога
auth methods = winbind # Метод аутентификации: winbind
winbind separator = \ # Разделитель ДОМЕН\Пользователь(Группа)
# Далее расшаривание ресурсов:
[mp3] # название ресурса
comment = Upload # Комментарий(необязательно)
path= /mnt/win_e/MMedia/mp3 # Путь
browseable = yes # Разрешить видеть содержимое
writable = no # Запретить запись
directory mask = 0777 # Маска создания директорий
create mask = 0666 # Маска создания файлов
valid users = @"Admin" # Даем доступ только админу, пользователей или
# группы перечисляем через запятую.Группы для
# домена на русской версии windows указывается
# таким образом: @"DOMAIN\Пользователи домена"
#Конец smb.conf
Сохраняем smb.conf
Начинаем править /etc/samba/lmhosts
В этом файле указываем IP нашего сервера и соответствующее имя для
использования в smb.conf
Запись про bdc создана на всякий случай...пусть самба думает что у вас
есть резервный контроллер домена(иначе все может просто не
заработать). Или - если он есть, укажите его.
#lmhosts
127.0.0.1 localhost
192.168.0.2 pdc
192.168.0.3 bdc
#Конец lmhosts
Дальше - системе надо сказать, что она будет использовать для
аутентификации.
Для этого правим файл /etc/nsswitch.conf
Я привожу его полностью, внимание же надо обратить на первые 3 строчки
(начиная с passwd :))
#nsswitch.conf
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files nisplus nis dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus
#Конец nsswitch.conf
Потом редактируем /etc/pam.d/samba
Добавляем недостающие строки:
#samba
auth required pam_winbind.so
auth required pam_nologin.so
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
auth required pam_stack.so service=system-auth
account sufficient pam_winbind.so
password required pam_winbind.so
#Конец samba
Аналогично: /etc/pam.d/system-auth-winbind
#system-auth-winbind
auth required pam_env.so
auth sufficient pam_winbind.so
auth sufficient pam_unix.so likeauth nullok use_first_pass
auth required pam_deny.so
account sufficient pam_winbind.so
account required pam_unix.so
password required pam_cracklib.so retry=3
password sufficient pam_unix.so nullok use_authtok md5 shadow
password required pam_deny.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_limits.so
session required pam_unix.so
#Конец system-auth-winbind
Для тех, кто хочет использовать Kerberos надо отредактировать файл
/etc/krb5.conf, чтобы он смотрел на центр раздачи ключей, который есть
у вас в сети.(Скорее всего это тот самый пресловутый доменный сервер
под Win2kServer).
И вообще, чтобы использовать Kerberos на полную, конфиг самбы нужно
использовать в режиме ads, а не domain
Мне Kerberos не нужен, поэтому я этот файл даже не трогал.
Все...файлы отредактировали. Переводим дух... Выполняем:
[root@linux /]net join -U Admin
После этого мы должны ввести пароль админа контроллера домена.
Результатом должно быть
Joined to domain DOMAIN.
Если не трогали /etc/krb5.conf или неправильно его отредактировали, в
процессе ругнется что не может использовать KDC.
libads/kerberos.c:ads_kinit_password(133)
kerberos_kinit_password Admin@DOMAIN.RU failed: KDC has no support for encryption type
Joined domain DOMAIN
Это ничего - если вы не хотите использовать Kerberos.
Далее выполняем:
[root@linux /]service winbind restart
[root@linux /]service smb restart
Грабли: особенность Мандрейка 10:
Если еще раз перезапустить winbind и выскочит такое. Т.е. после
"Shutting Down" нет [OK]:
Shutting Down Winbind...............
Starting Winbind.................... [ OK ]
Для решения проблемы можно привести файл /etc/rc.d/init.d/winbind в
надлежащий вид. А если конкретнее секцию stop(кто знает другой способ
- пишите:)):
stop() {
gprintf "Shutting down Winbind services: "
RETVAL=1
killproc winbindd
rm -f /var/run/samba/winbindd.pid
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/winbind
return $RETVAL
}
После этого, смотрим, как все работает:
Если что-то неправильно - смотрим конфиги.
Сначала:
[root@linux /]wbinfo -p
Ping to winbindd succeeded
Затем:
[root@linux /]wbinfo -t
Сhecking the trust secret via RPC calls succeeded
Смотрим, отображаются ли пользователи:
[root@linux /]wbinfo -u
Тут будут перечислены пользователи домена.
Смотрим, отображаются ли группы:
[root@linux /]wbinfo -g
Тут будут перечислены группы домена.
Смотрим видит ли линукс вышеперечисленное:
[root@linux /]getent group
Тут будут перечислены сначала группы и пользователи линукса - следом
будут пользователи и группы домена.
Если что-то не так: смотрим
/var/log/samba/log.smbd
/var/log/samba/log.nmbd
/var/log/samba/log.winbindd
В них четко и ясно написано где ошибка :)
Все! Дописываем нужные шары, разрешения на них. Также можно
использовать квоты, но для этого Ваше ядро должно быть откомпилено с
поддержкой квот.
P.S. Не забываем про man smb.conf !
Сделал все как написано в статье.
вообщем есть рабочая станция windows 2003 и сервер 2003 , папки рабочей станции подключаються.... а вот серварка нет.
в догонку, чтобы не возникало известной проблемы с заходом на сервер по ip и незаходом по имени (типа \\12.12.12.12 - работает а \\myserver - нет) ОБНОВИТЕ СВОИ БИБЛИОТЕКИ kerberos
Мандрива 2010
Сделал всё как написано.
При включении не запускается сетка и не стартует самба. Хотя (я смотрю из-под иксов ибо нюб) галочка запускать сеть при запуске системы стоит.
Если запустить сетку руками и выполнить service smb restart то становится видны компутеры домена и даже моя станция среди них %)
getent group
возвращает только "своих" юзверей.
в логах ничего полезного нет, только сообщения о том, что службы запущены.
куда надо начать копать?
а вообще статья супер спасибо.