НОУ ІНТУІТ, Лекція, Облікові записи в Linux
Хід заняття
1. Linux, як і будь-яка unix-подібна система, є не тільки багатозадачною, але і розрахованою на багато користувачів, тобто. ця операційна система дозволяє одночасно кільком користувачам працювати з нею. Але система повинна якось дізнаватися, який або які користувачі працюють в даний момент. Саме для цих цілей у Linux існує два поняття -облікові записитааутентифікація, які є частинами одного механізму.
Обліковий запис користувача– це необхідна для системи інформація про користувача, що зберігається у спеціальних файлах. Інформація використовується Linux для автентифікації користувача та призначення прав доступу.
Аутентифікація- системна процедура, що дозволяє Linux визначити, який саме користувач здійснює вхід.
Вся інформація про користувача зазвичай зберігається у файлах/etc/passwdта/etc/group.
/etc/passwd– цей файл містить інформацію про користувачів. Запис для кожного користувача займає один рядок:
ім'я користувача– ім'я, яке користувач використовує на всі запрошення типу login при аутентифікації в системі.
зашифрований пароль– зазвичай хешований за незворотним алгоритмом MD5 пароль користувача або символ '!', у випадках, коли інтерактивний вхід користувача до системи заборонено.
U >ідентифікатор користувача. Система використовує його для розподілу прав файлів та процесів.
G >ідентифікатор групи . Імена груп розташовані у файлі /etc/group. Система використовує його для розподілу прав файлів та процесів.
Справжнє ім'я користувача– використовується в адміністративних цілях, а також командами типу finger (отримання інформації прокористувачеві через мережу).
Домашній каталог- повний шлях до домашнього каталогу користувача.
Оболонка- командна оболонка, яку використовує користувач при сеансі. Для нормальної роботи вона повинна бути вказана у файлі реєстрації оболонок/etc/shells.
/etc/group– цей файл містить інформацію про групи, до яких належать користувачі:
Ім'я групи– ім'я, яке використовується для зручності використання таких програм, як newgrp .
Шифрований пароль– використовується при зміні групи командою newgrp. Пароль для груп може бути відсутнім.
G >ідентифікатор групи . Система використовує його для розподілу прав файлів та процесів.
Користувачі, включені в декілька груп– У цьому полі через кому відображаються ті користувачі, у яких за умовчанням (у файлі/etc/passwd) призначена інша група .
На сьогоднішній день зберігання паролів у файлахpasswdтаgroupвважається ненадійним. У нових версіях Linux застосовуються так звані тіньові файли паролів -shadowтаgshаdow. Права на них призначені таким чином, що навіть читання цих файлів без прав суперкористувача неможливе. Потрібно врахувати, що нормальне функціонування системи при використанні тіньових файлів має на увазі одночасно наявність файлівpasswdіgroup. При використанні тіньових паролів /etc/passwd і /etc/ group замість самого пароля встановлюється символ 'x', що і є вказівкою на зберігання пароля /etc/shadow або /etc/gshadow.
Файлshadowзберігає захищену інформацію про користувачів, а також забезпечує механізми старіння паролів та облікових записів. Ось структура файлуshadow :
Файлgshadowтакож накладаєдодаткову функціональність, разом із захищеним зберіганням паролів груп. Він має таку структуру:
Ім'я групи– ім'я, яке використовується для зручності використання таких програм, як newgrp.
Шифрований пароль– використовується при зміні групи командою newgrp. Пароль для груп може бути відсутнім.
Адміністратор групи– користувач, який має право змінювати пароль за допомогою gpasswd.
Список користувачів– У цьому полі через кому відображаються ті користувачі, у яких за умовчанням (у файлі/etc/passwd) призначено іншу групу .
2. У Linux, крім звичайних користувачів, існує один (і лише один) користувач із необмеженими правами. Ідентифікатори UID та GID такого користувача завжди 0 . Його ім'я, як правило, root, проте воно може бути легко змінено (або створено кілька символьних імен з однаковим GID та UID), оскільки значення для застосування необмежених прав доступу має лише GID 0. Для користувача root права доступу до файлів та процесів не перевіряються системою. Працюючи з використанням облікового запису root необхідно бути гранично обережним, т.к. завжди є можливість знищити систему.
3. У Linux використовується розвинена система розподілу прав користувачам. Але для точного впізнання користувача одного імені недостатньо з погляду безпеки. Саме тому використовуєтьсяпароль – довільний набір символів довільної довжини, зазвичай обмеженої лише використовуваними методами шифрування.
Сьогодні у більшості версій Linux паролі шифруються за алгоритмами 3DES та MD5 (застаріло, тепер SHA512). Коли алгоритм 3DES є оборотним, тобто такий пароль можна розшифрувати, MD5 – це незворотне перетворення. Паролі, зашифровані поалгоритм 3DES не застосовуються при використанні тіньових файлів для зберігання паролів.
При аутентифікації пароль , введений користувачем, шифрується тим же методом, що і вихідний, а потім порівнюються вже зашифровані копії. Якщо вони однакові, то автентифікація вважається успішною.
Враховуючи вимоги до безпеки, що щодня збільшуються, в Linux є можливість використовувати приховані паролі. Файли/etc/passwdта/etc/groupдоступні для читання всім користувачам, що є досить великою брехнею в безпеці системи. Саме тому в сучасних версіях Linux краще використовувати приховані паролі. Такі паролі розміщуються у файлах/etc/shadowта/etc/gshadow, для паролів користувачів та груп відповідно.
4. Команда login запускає сеанс інтерактивної роботи у системі. Вона перевіряє правильність введення імені та пароля користувача, змінює каталог на домашній, вибудовує оточення та запускає командний інтерпретатор. Команду login зазвичай не запускають з командного рядка - це зазвичай за користувача роблять менеджери консолі - наприклад getty або mgetty.
Команда su (switch user) дозволяє змінити ідентифікатор користувача вже в процесі сеансу. Синтаксис її простий: su username, де username – ім'я користувача, яке використовуватиметься. Після цього програма запросить пароль. При правильно введеному паролі su запустить новий командний інтерпретатор з правами користувача, зазначеного su і присвоє сеансу його ідентифікатори. Якщо ім'я користувача опущене, команда su використовує ім'я root .
При використанні команди su користувачем root вона зазвичай не запитує пароль .
Команда newgrp аналогічна за своїми можливостями su з тією різницею, що відбувається змінагрупи. Користувач повинен бути включений до групи, яка вказується у командному рядку newgrp. При використанні команди newgrp користувачем root вона ніколи не запитує пароль. Синтаксис команди аналогічний синтаксису команди su: newgrp groupname , де groupname - ім'я групи , яку користувач змінює поточну.
Команда passwd є інструментом зміни пароля в Linux. Для зміни свого пароля достатньо набрати в командному рядку passwd :
Для зміни пароля групи та керування групою використовується команда gpasswd Для зміни пароля достатньо набрати в командному рядку gpasswd GROUPNAME. Змінити пароль вам вдасться, лише якщо Ви є адміністратором групи. Якщо пароль не порожній, то для членів групи виклик newgrp пароля не вимагає, а не члени групи повинні ввести пароль. Адміністратор групи може додавати та видаляти користувачів за допомогою параметрів -a та -d відповідно. Адміністратори можуть використовувати -r для видалення пароля групи. Якщо пароль не задано, лише члени групи за допомогою команди newgrp можуть увійти до групи. Вказавши параметр -R, можна заборонити доступ до групи за паролем за допомогою команди newgrp (проте на членів групи це не поширюється). Системний адміністратор (root) може використовувати параметр -A, щоб призначити групі адміністратора.
Суперкористувач може використовувати також інші параметри, такі як:
-d дата (у форматі системної дати, наприклад ДД.ММ.РРРР) – встановлює дату останньої зміни пароля користувачем.
-E дата – встановити дату старіння пароля облікового запису користувача
-m N – задає мінімальну кількість днів (N) між змінами пароля
-M N – задає максимальну кількість днів (N) між змінами пароля
-W N – задає кількістьднів, за які видаватиметься попередження про старіння пароля.