Вивчаємо linux, 302 (змішані середовища) управління обліковими записами користувачів і груп

Планування системи управління обліковими записами користувачів і груп

Якщо вам доводилося працювати з обліковими записами користувачів і груп, то ви напевно знаєте, що в змішаних середовищах їх застосування не завжди проходить гладко для користувачів, що є типовим джерелом проблем як для користувачів, так і для системних адміністраторів. На щастя в складі Samba є інструменти, які допомагають керувати цим процесом. З цієї статті ви дізнаєтеся про те, як управляти обліковими записами користувачів і груп в змішаному середовищі.

Трейсі Бост. консультант і викладач, Вільний письменник

Про цю серії

Ця серія статтею допоможе вам освоїти завдання адміністрування операційної системи Linux. Ви можете використовувати матеріали цих статей для підготовки до іспитів програми LPIC третього рівня (LPIC-3).

У цій статті розглядаються такі теми:

  • Облікові записи UNIX.
  • Служба захисту Samba.
  • Зіставлення облікових записів.
  • Примусова установка прав доступу до файлів і тек для облікових записів.

попередні вимоги

Щоб отримати найбільшу користь з наших статей, необхідно володіти просунутими знаннями про Linux і мати працездатний комп'ютер з Linux, на якому можна буде виконувати всі зустрічаються команди. Зокрема, передбачається, що читач вміє працювати з командним рядком Linux і в загальних рисах розуміє призначення Samba (про що розповідалося в попередній статті "Вивчаємо Linux, 302: основні принципи"). Для виконання прикладів цієї статті на вашому комп'ютері має бути інстальовано програмне забезпечення Samba, і ви повинні мати доступ до мережевого клієнта під керуванням Windows.

Розуміння облікових записів користувачів і груп UNIX

Про факультативному іспиті LPI-302

Як і багато інших програм, програма сертифікації Linux Professional Institute (LPIC) передбачає різні рівні сертифікації, де для отримання кожного наступного рівня необхідно володіти більш глибокими знаннями і практичним досвідом. Іспит LPI-302 - це факультативний іспит третього рівня програми LPIC, що вимагає просунутих знань в області системного адміністрування Linux.

Для отримання сертифікату LPIC третього рівня (LPIC-3) необхідно успішно здати два іспити першого рівня (101 і 102), два іспити другого рівня (201 і 202), а також базовий іспит 301 третього рівня (LPIC-3). Якщо ви отримали сертифікат третього рівня, ви можете здавати факультативні іспити з певних спеціалізацій, наприклад, іспит LPI-302.

Ваш сервер Samba не існує сам по собі. Користувачі повинні отримувати доступ до файлів і тек, але перш, ніж вони зможуть це зробити, вони повинні пройти аутентифікацію. Користувачі можуть підключатися з робочих станцій, що працюють під управлінням як Linux, так і Windows. Так чи інакше, кожен користувач повинен мати обліковий запис, який може розпізнати сервер Samba.

Після того, як користувач пройшов аутентифікацію, він повинен отримати права доступу до файлів, тек і службам друку. Групи - це один з підтримуваних Samba компонентів, який дозволяє більш ефективно управляти цими дозволами.

Внутрішня база даних SAM - це посередник між локальними обліковими записами UNIX та обліковими записами віддалених комп'ютерів. Існує кілька методів, що дозволяють користувачам пройти аутентифікацію на сервері Samba, але перш ніж перейти до розгляду облікових записів Samba, необхідно твердо розуміти основи управління обліковими записами користувачів і груп в UNIX.

Облікові записи користувачів

Лістинг 1. Створення локального облікового запису

Кожен рядок у файлі / etc / passwd містить одну обліковий запис і складається з семи полів, розділених двокрапкою (.). Для управління обліковими записами Samba представляють інтерес три поля: перше (ім'я користувача), третє (ідентифікатор користувача, UID) і четверте (ідентифікатор групи, GID).

Облікові записи груп

Облікові записи груп грають важливу роль, спрощуючи адміністрування комп'ютерів з декількома користувачами. Якщо ви керуєте сервером Samba, то типовою завданням є призначення групам прав доступу до певних файлів, тек і принтерів.

Так само, як і в випадку з обліковими записами користувачів, якщо ви працюєте з локальної конфігурацією облікових записів Samba, то в більшості випадків необхідно створити облікові записи груп UNIX на локальному сервері Samba. Інформація про облікові записи груп UNIX зберігається в файлі / etc / group. У деяких дистрибутивах Linux для кожного нового користувача створюється локальна приватна група. Саме так йде справа у випадку з користувачем monty.

Лістинг 2. Створення групи та додавання в неї користувача

Для створення групи і додавання в неї користувача в лістингу 2 використовуються команди / sbin / groupadd і / sbin / usermod. Якщо потрібно додати до групи кілька користувачів, то можна створити сценарій або додати користувачів безпосередньо в файл / etc / group. Члени групи повинні бути перераховані в останньому полі і розділятися комами (.). Якщо ви створюєте групи вручну, то не забувайте про те, що кожна група повинна мати унікальний ідентифікатор (GID).

Служба захисту Samba

У стандартній конфігурації Samba інформація про облікові записи зберігається в одній з наступних внутрішніх баз даних паролів:

Використання smbpasswd і tdbsam

База даних smbpasswd використовується за умовчанням у всіх версіях Samba нижче 3.4. В Samba версії 3.4 smbpasswd була оголошена застарілою і замість неї використовується база даних tdbsam (ця база даних також рекомендується для середовищ, що містять менше 250 користувачів).

База даних tdbsam вважається краще масштабується в порівнянні з smbpasswd. Якщо ви працюєте з версією Samba, в якій за замовчуванням використовується smbpasswd, то можете замінити цю базу даних на tdbsam, вказавши у файлі smb.conf параметр passdb = tdbsam в розділі global.

Однак smbpasswd - це не просто база даних, але ще і інструмент зі складу пакета Samba, що дозволяє управляти обліковими записами Samba в простих конфігураціях. Для створення облікового запису Samba необхідно мати права користувача root. Перш ніж створювати обліковий запис Samba, вона повинна існувати на локальному сервері Linux. У лістингу 3 наведено приклад створення облікового запису користувача Samba за допомогою smbpasswd.

Лістинг 3. Створення облікового запису користувача Samba за допомогою smbpasswd

Користувачі можуть використовувати smbpasswd для зміни своїх паролів, як показано в лістингу 4.

Лістинг 4. Локальний користувач може змінювати свій пароль за допомогою smbpasswd

Можна також так налаштувати Samba для синхронізації паролів, щоб при кожній зміні користувачем пароля для свого локального облікового запису також оновлювався і пароль Samba:

Якщо протягом якогось часу користувачеві не потрібен доступ до сервера Samba, то можна тимчасово відключити обліковий запис і включити її пізніше. Якщо користувачеві взагалі не потрібен доступ до Samba, то його обліковий запис можна видалити. У лістингу 5 показано, як це зробити.

Лістинг 5. Відключення, включення і видалення облікового запису Samba за допомогою smbpasswd

Використання pdbedit

У складі Samba є багатофункціональний інструмент під назвою pdbedit. Цей інструмент може працювати з обліковими записами, що зберігаються в будь-який з трьох перерахованих вище баз даних. Крім створення, зміни та видалення користувачів, pdbedit дозволяє виконувати наступні дії:

  • Відображати список облікових записів користувачів.
  • Вказувати домашні директорії.
  • Імпортувати облікові записи користувачів.
  • Призначати політики облікових записів.

При роботі з базою даних tdbsam можна використовувати як pdbedit. так і smbpasswd (лістинг 6). Для виконання всіх команд pdbedit необхідно володіти правами користувача root.

Лістинг 6. Виконання різних дій з внутрішньою базою даних за допомогою smbpasswd і pdbedit

У лістингу 6 продемонстровано, як можна створити користувача за допомогою smbpasswd. а потім вивести список користувачів Samba за допомогою pdbedit.

Створіть ваш власний канал

Утиліту pdbedit можна також використовувати для завдання політик облікових записів. Нижче перераховані назви політик, якими можна управляти:

  • min password length (мінімальна довжина пароля)
  • password history (зберігати історію паролів)
  • user must logon to change password (вимагати зміну пароля при наступному вході в систему)
  • maximum password age (максимальний термін дії пароля)
  • minimum password age (мінімальний термін дії пароля)
  • lockout duration (час блокування при невдалому вході)
  • reset count minutes (скидання лічильника хвилин блокування облікового запису)
  • bad lockout attempt (блокування при невдалій спробі входу)
  • disconnect time (час до відключення)
  • refuse machine password change (відхиляти зміна пароля комп'ютера)

У лістингу 7 ми встановлюємо мінімальну довжину пароля рівній восьми символам, а потім встановлюємо максимальний термін дії пароля рівним 30 дням. Опція -P приймає строковий аргумент, який в точності повинен збігатися з ім'ям однієї з перерахованих вище політик, а опція -c задає значення для обраної політики.

Лістинг 7. Служба захисту за допомогою pdbedit

Для отримання додаткової інформації про доступні команди утиліти pdbedit зверніться до її man-сторінці або виконайте команду pdbedit -h.

Використання ldapsam

Якщо ваша середовище містить більше 250 користувачів, то можна використовувати внутрішню базу даних ldapsam. З усіх трьох перерахованих вище баз даних тільки ldapsam може зберігати дані про облікові записи груп. Якщо вся інформація про користувачів і групи зберігається у внутрішній базі даних ldap, то ідентифікатори користувачів і груп (UIDs і GIDs, відповідно) будуть узгоджені між усіма вашими серверами. Оскільки настройка LDAP виходить за рамки цієї статті, я обмежуся інформацією про те, що розташування LDAP-сервера визначається параметром idmap backend в файлі smb.conf.

У наступному прикладі параметр idmap backend говорить Samba про те, що в якості сховища облікових даних вона повинна використовувати службу каталогів LDAP, запущену на вузлі з ім'ям directory-services.example.org. В цьому випадку необхідно мати робочий сервер LDAP, попередньо налаштований на роботу з Samba (більш докладно утиліта idmap буде розглянуто в наступному розділі).

Зіставлення облікових записів

Якщо ваш сервер Samba є рядовим сервером одного домену, то, ймовірно, ви просто будете використовувати файли зіставлень. Однак, якщо у вашому середовищі є користувачі, які підключаються до сервера Samba з іншого домену, то коректне зіставлення ідентифікаторів користувачів і груп допомагає виконати утиліта idmap.

Зіставлення користувачів за допомогою sampasswd і TDB-файлів

Таблиця 1. Облікові записи Windows і UNIX для зіставлення

Коли ви створюєте облікові записи Samba, використовуйте імена облікових записів Windows. У файлі smb.conf можна вказати місце розташування файлу, що містить зіставлення облікових записів з відповідними обліковими записами UNIX. У лістингу 8 показано зіставлення облікових записів в UNIX.

Лістинг 8. Просте зіставлення облікових записів в UNIX

Команда в лістингу 8 налаштовує параметр username map на використання файлу use / etc / samba / smbusers як файлу зіставлень. Процедура зіставлення облікових записів досить проста: зліва вказуються облікові записи UNIX, праворуч - облікові записи Samba, а між ними ставиться знак рівності (=). При підключенні користувача Samba виконує зіставлення відповідної облікового запису.

зіставлення груп

У типовій середовищі Samba зіставлення груп налаштовується за допомогою команди groupmap зі складу Samba. Припустимо, що користувачі Monty, bostt і sue.george є членами груп Domain Admins, Domain Users і Domain Guests. Якщо ви хочете встановити для груп цих користувачів такі ж дозволу, що і для груп UNIX на сервері Samba, то додайте імена облікових записів користувачів UNIX в кожну групу:

Це лише частина списку груп на сервері Samba. Групи adm і users били створені під час інсталяції операційної системи Linux. Вам необхідно додати кожного користувача до відповідної групи (таблиця 2).

Таблиця 2. Облікові записи груп Windows і UNIX для зіставлення

Команда net groupmap може виконувати зіставлення доменних груп (лістинг 9), а команда net groupmap list виводить список цих зіставлень. Починаючи з Samba версії 3.х, доступна нова функціональність, призначена для зіставлення відносних ідентифікаторів Windows (RID) і ідентифікаторів груп UNIX (GID).

Лістинг 9. Зіставлення груп за допомогою команди groupmap

У лістингу 9 виконується наступна послідовність дій для зіставлення груп:

  1. Виконання команди net groupmap add з правами користувача root для зіставлення Windows-групи Domain Admin (ntgroup = 'Domain Admin ") з групою UNIX adm (unixgroup = adm).

Виконання цих дій для зіставлення кожної групи.

  • Остання команда лістингу 9 виводить список зіставлень груп.
  • Зіставлення ідентифікаційних даних

    Розглянуті зіставлення виявляються достатніми в більшості середовищ. Проте, якщо ви керуєте складнішою середовищем, наприклад, середовищем з декількома серверами Samba або робочими станціями з різних доменів, які підключаються до сервера Samba, то слід знати про зіставлення ідентифікаційних даних (IDMAP) і Winbind. IDMAP може допомогти вирішити проблеми функціональної сумісності між ідентифікаторами безпеки Windows (SID) і локальними ідентифікаторами користувачів (UID) або груп (GID) UNIX.

    Якщо сервер Samba є членом домену Windows, то для зіставлення ідентифікаторів SID і UID (або GID) можна використовувати Winbind. У файлі smb.conf можна налаштувати діапазон значень параметра idmap і вказати час, протягом якого Winbind повинен кешувати дані облікового запису:

    Примусове призначення облікових записів за замовчуванням