Постановка завдання така:
Є в мережі сервер, що виконує функції файлопомойка, під управлінням Linux. Крім сервера в мережі є віндового машини, які повинні зберігати файли на цьому сервері. У кожного користувача на сервері повинна бути особиста папка і одна загальна для всіх користувачів.
Все начебто просто - поставив Самбу, наробив користувачів ідентичних віндового і радій життю. Так в принципі воно й було якийсь час, але захотілося змін - вирішив трохи автоматизувати і спростити адміністрування своєї файлопомойка, тому що юзери ростуть як гриби і «треба шото робити».
Виходячи з цього, було вирішено побудувати таку схему:
розгорнути АТ і прикрутити до нього файлсервера Samba з аутентифікацією через Active Directory. При цьому, коли користувач вперше підключається до сервера, автоматично створюється особиста папка, яка доступна як кулі тільки конкретного користувача.
З налаштуванням АТ все зрозуміло (нудно). А ось з налаштуванням Самби довелося погратися. Як зробити це в Debian lenny я і розповім в даній статті.
Розраховуємо що контролер домену і ДНС у нас вже налаштовані.
Winbind - це демон, який дозволяє Самбі дізнаватися користувачів AD і спілкуватися з ними як з локальними.
Kerberos використовується для інтеграції Samba в Active DIrectory. Відкриваємо його конфіг і підставляємо свої параметри (виділив червоним):
Перевіряємо правильність налаштувань:
domain_user - користувач з правами входу в домен. Якщо все правильно - команда завершитися без виведення на екран. У мене все пройшло без помилок, але ось найпоширеніші з них:
kinit: krb5_get_init_creds: Client ([email protected]) unknown
Неправильний логін або пароль користувача domain_user.
Варто перевірити правильність конфіга і налаштування ДНС.
Невідповідність часу на контролері домену і на нашому сервері. Синхронізувати час з Active Directory можна командою:
Тепер налаштуємо Самбу і Winbind. Мій працює конфіг нижче, можна просто скопіювати його підставив свої дані (виділив червоним):
Увага! Ім'я домену вказується у верхньому регістрі.
Розділ [Homes] і розшарені папки можуть відрізнятися від вказаних. У моєму конфіге вони налаштовані відповідно до вимог, описаними на початку статті.
У моєму випадку smbusers - група в Active Directory, користувачі якої матимуть доступ до спільної папки і до особистих папок. Що б домашня директорія створювалася автоматично в / home / samba / имя_пользователя, коли користувач вперше підключається до сервера Samba, крім налаштувань в /etc/samba/smb.conf, потрібно прописати також певну запис в /etc/pam.d/samba:
umask = 0077 - відповідає правам доступу 0700.
skel = / etc / samba / skel / - шлях до папки, вміст якої буде скопійовано в створену директорію.
Далі відкриваємо /etc/nsswitch.conf і редагуємо зазначені рядки:
Вводимо комп'ютер в домен:
domain_user - користувач домену, у якого досить привілеїв для приєднання комп'ютера до домену.
Перевіримо роботу winbindd:
Ці команди повинні вивести список користувачів і список груп відповідно.
Що б перевірити сприймаються чи доменні користувачі як локальні, можна скористатися командою:
Повинні отримати щось типу:
Тепер, при підключенні до нашого сервера з вінди під доменної обліковим записом domain_user, ми повинні бачити 2 розшарені папки - «domain_user» і «Public». При цьому папка domain_user буде створена в / home / samba якщо не існувала раніше.