Управління користувачами у freebsd

Управління користувачами у FreeBSD


Повноваження користувачів і файлів, що належать їм, формує концепцію ОС UNIX. Так як FreeBSD є багато користувачів ОС і належить до сімейства ОС відносяться до загального назвою UNIX, тому вміння грамотно управляти користувачами дозволить уникнути різних неприємностей.

Облікові записи користувачів і груп зберігаються в двох файлах:

• / etc / master.passwd - в даному файлі зберігаються облікові дані користувачів і їх паролі в зашифрованому вигляді.
• / etc / group - файл, який відповідає за групи

У FreeBSD використовується технологія тіньових паролів - це коли системні дані користувачів розділені на два файли:

1.файл /etc/master.passwd в якому знаходяться паролі в зашифрованому вигляді, він має права тільки на читання і запис для користувача root

2.файл / etc / passwd. створений за допомогою команди pwd_mkdb (8) (генерація бази з паролями) з файлу /etc/master.passwd. він має права на читання для групи і інших користувачів, в ньому паролі замінені на *. Також за допомогою команди pwd_mkdb (8) з файлу /etc/master.passwd створюються два файли - /etc/pwd.db і /etc/spwd.db (індексовані бази даних), вони призначені для прискорення пошуку, в разі великої кількості системних користувачів. Файл /etc/spwd.db є секретним як і файл /etc/master.passwd і має ті ж права доступу і власника.


Розглянемо синтаксис файлу /etc/master.passwd:

Кожна нова рядок в файлі описує користувача, вона містить в собі стовпці розділені (:).

Стовпці по порядку:

Поле home_dir. визначає шлях до домашнього каталогу користувача, власником якого він буде.
Поле shell. визначає оболонку користувача, список доступних оболонок для користувача можна подивитися у файлі / etc / shells. Для користувача root змінювати поточну оболонку не рекомендується, так як в разі аварії файлова система / usr може бути не примонтировать, в слідстві чого користувач root не отримає доступ до системи.
Якщо Ви хочете заборонити доступ користувача до системи, замініть його оболонку на / sbin / nologin. Дана програма більш коректно, ніж інші (пр. / Dev / null) обробить спробу входу користувача.
nbsp
nbsp При додаванні нового користувача необхідно вибрати унікальне ім'я (login name) яке не зустрічатиметься в файлі / etc / passwd і / etc / mail / aliases. Так само ім'я не повинно починатися з символу (-) і містити в собі символ (.), І великі літери, так як можуть виникнути непередбачені ситуації при роботі з поштою. Останній зареєстрований учасник отримує унікальний id - UID і стає членом групи, ім'я якої збігається з ім'ям користувача, в якій він буде один. Така стратегія іменування групи дозволяє поліпшити безпеку і гнучкість при управлінні доступом. UID і ім'я користувача (login name) є унікальними в системі і будуть використовуватися при здійсненні контролю доступу до файлової системи. Після додавання користувача в систему, в його домашній каталог копіюються файли .profile (виконується при заході користувача в систему), якщо використовується оболонка / bin / sh або .cshrc (при старті оболонки) і .login (при заході користувача в систему), якщо використовується оболонка / bin / csh. Всі ці файли копіюються з каталогу / usr / share / skel.


Управління ресурсами користувача і обмеження.

Управління ресурсами користувача здійснюється за допомогою класів, які визначаються в спеціальному файлі /etc/login.conf. а також задаються користувачеві при його додаванні. Якщо для користувача не визначено будь-якої клас, то йому присвоюється клас - default. Кожен клас має набір характеристик у вигляді ім'я = значення. Для прискорення доступу до даних система безпосередньо не Новомосковскет файл /etc/login.conf. а замість цього Новомосковскет файл /etc/login.conf.db. який створюється спеціальною командою cap_mkdb (1)

Тому після кожної зміни файлу /etc/login.conf не забувайте виконувати команду cap_mkdb (1)
nbsp Змінити або задати клас користувачеві можна в файлі /etc/master.passwd. в якому для цього є спеціальне поле class. Це обговорювалося вище. Користувач з UID = 0, тобто адміністратор системи (root) не має чинного класу, до нього застосовується запис root в /etc/login.conf або клас default, якщо запис root відсутня.
nbsp Користувач може для себе створити індивідуальний файл з настройками ресурсів в домашньому каталозі під назвою

/login.conf. цей файл використовує той же синтаксис, що і файл /etc/login.conf. але він містить тільки запис id з ім'ям «me». У цьому файлі користувач може тільки зменшувати надані йому ресурси, але ніяк не збільшувати.
nbsp Як роздільник полів у файлі /etc/login.conf використовується символ (:). Перше поле у ​​файлі означає ім'я класу, який в подальшому буде застосовуватися до того чи іншого користувача.

nbsp Кожне поле у ​​файлі /etc/login.conf може набувати таких значень:
• bool - якщо параметр є булевим, то воно може набувати наступних значень - true або false; Просто запис опції в файлі /etc/login.conf без вказівки явного значення означає - true. Для визначення false необхідно явно вказати.
• file - опція приймає значення в вигляді шляху до файлу;
• program - опція приймає значення в вигляді шляху до ісполняемуму файлу або програми;
• list - опція приймає значення у вигляді списку розділеного коми або пропуском;
• path - опція приймає значення шляхів, розділених комою або пробілом. Тільда ​​(

) Розкривається в домашній каталог користувача;
• number - числовий значення, в десятковому, шістнадцятковому або вісімковому вигляді.
• string - у вигляді рядка;
• size - розмір. За замовчуванням приймається в байтах. Може приймати наступні суфікси для позначення одиниць розмірів:
b - байти
k - кілобайти
m - мегабайти
g - гігабайти
t - терабайти
Можливе об'єднання значень із зазначенням відповідних суффікосв: 1m30k
• time - період часу, за замовчуванням виражений в секундах. Як суфікса можуть використовуватися такі символи:
y - рік
w - тиждень
d - день
h - годину
m - хвилини
s - секунди
Можливе об'єднання значень із зазначенням відповідних суфіксів: 2h30m
• unlimited - відсутність обмежень


В опціях host.allow і host.deny роздільником хостів є кома.
nbsp
nbsp В опціях times.allow і times.deny записи розділяються комою. Значення періодів часу записуються в 24-х годинному форматі, відокремлених один від одного дефісом.
Для прикладу: MoThSa0200-1300 Даний запис розшифровується так: доступ користувачу дозволений по понеділках, четвергах, суботах в період з 2-год години ночі до першої години дня. Якщо обидві опції в призначеному для користувача класі відсутні, то доступ дозволяється в будь-який час. Якщо період часу дозволений в опції times.allow забороняється періодом часу в файлі times.deny. то пріоритет має опція times.deny.
nbsp
nbsp В опціях ttys.allow і ttys.deny міститися записи tty пристроїв, розділені комою (без префікса / dev /) і список ttygroups (дивіться getttyent (3) і ttys (5)) до яких користувач даного класу має або не має доступ. Якщо в опції немає жодного запису, то користувач має необмежений доступ.
nbsp
nbsp Параметри пароля такі як мінімальна довжина (minpasswordlen) і параметр відповідає за попередження, якщо користувач вводить пароль лише в нижньому регістрі (minpasswordcase) не підтримуються, для цих обмежень застосовується pam модуль pam_passwdqc (8).

nbsp Завдання класів для системних користувачів є дуже хорошим засобом індивідуального обмеження користувача, але використовуйте цей засіб усвідомлено і з обережністю.

Для управління користувачами і групами будуть корисні наступні команди:

• pw (8) - створення, видалення, зміна, відображення користувачів і груп;
• adduser (8) - інтерактивне додавання нового користувача;
• rmuser (8) - видалення користувача із системи;
• id (1) - відображення імені користувача, UID і груп в яких він складається із зазначенням їх GID;
• finger (1) - відображає інформацію про системний користувача;
• users (1) - показує список поточних користувачів;
• who (1) - показує тих хто знаходиться в системі;
• whoami (1) - показує ефективний id користувача відповідний імені;
• last (1) - показує коли користувач користувався терміналом;
• lastlogin (8) - показує інформацію про останньому використанні терміналу;
• lastcomm (1) - показує список останніх виконуємо команд користувачем;
• ac (8) - показує час, який користувач знаходився в системі;
• sa (8) - показує статистику по користувачах;
• passwd (8) - зміна пароля користувача;
• chpass (1) - зміна пароля користувача;
• chfn (1) - зміна призначених для користувача даних;
• groups (1) - показує хто до якої групи складається;
• chgrp (1) - зміна групи;
• chkgrp (8) - перевірка синтаксису файлу груп;

Для повноцінного використання команд lastcomm (1). sa (8) Вам потрібно включити облік використовуваних ресурсів. Облік використовуваних процесами ресурсів являє собою метод захисту, при якому адміністратор може здійснювати контроль за використанням системних ресурсів і їх розподіл між користувачами для потреб системного моніторингу та мінімального відстеження команд користувачів.
nbsp Для того що б включити систему обліку використовуваних ресурсів Вам необхідно виконати кілька дій.


Після виконання 3 дії Ви вже можите використовувати команди lastcomm (1). sa (8). Команда accton (8) включає систему обліку використовуваних ресурсів.


Використання системи обліку ресурсів, команда lastcomm (1) і sa (8):