Создание файлового сервера на Samba с аутентификацией через Active Directory
Дано:
Linux машина на Ubuntu 9.10, Samba 3.4.0 (так же проверено на Ubuntu 10.04, samba 3.4.7)
Домен Windows 2003
Параметры: Админ - Administrator, Домен: domain.local, PDC: pdc.domain.local
Задача: Создать файловый сервер с доступными для пользователей домена шарами.
Решение: Для начала, обновляем список пакетов и саму систему до текущего состояния:
sudo apt-get update && sudo apt-get upgrade
Потом ставим необходимые пакеты:
# sudo apt-get install samba krb5-user winbind
Если керберос ставится первый раз, то появится окно конфигурации, в
котором будут заданы несколько вопросов по нахождению сервера(ов)
керберос и сервера паролей (в 10.04 меня спросили только про домен). Вписываем туда соответственно все
контроллеры домена и контроллер с ролью PDC.
Все, подготовка закончена. Начинаем настраивать. Чтобы каждый раз не набирать sudo, переходим в админ-шелл:
# sudo -i
Итак, поехали. Для начала настраиваем керберос. Правим файл настроек /etc/krb5.conf Прописываем указанное, если его нет. Остальное пока не трогаем.
#Остальное, типа, socket options, printing и т.д. - по вкусу
# Дальше добавляем шары:
[SHARENAME]
path = /opt/usershare
read only = no
browsable = yes
guest ok = yes
.. и т.д.
Проверяем что у нас получилось:
# testparm
Заодно, можно эту инфу использовать для бэкапа настроек самбы, т.к. эта
команда выводит только измененные относительно установок по умолчанию
параметры.
Если с конфигом самбы все в порядке, добавляем машину в домен:
# net ads join -U Administrator
Enter Administrator's password:
Проверяем:
# net ads info
И еще один шаг, который я периодически забываю сделать - редактирование
файла /etc/nsswitch.conf, в котором хранится информация о службах,
отвечающих за аутентификацию. Если не прописать туда winbind,
предыдущие команды будут правильно отображать пользователей и группы из
домена, но сама система о них ничего знать не будет и залогиниться на
шары этого сервера будет невозможно.
Проверяем работу winbind по нахождению пользователей домена
# wbinfo -u
..должен отобразиться список пользователей домена (в том числе
доверительных, если есть)
# wbinfo -g
..соответственно отображает группы
И проверяем разрешение имен пользователей домена в локальные: # id DOMAIN\\Administrator
..или весь список:
# getent passwd
Теперь вроде все. Можно приступать к допиливанию самбы напильником до
желаемого результата, например, прикручивания к шарам vfs-модулей.