5.2 Урок 1
Сертифікат: |
Linux Essentials |
---|---|
Версія: |
1.6 |
Розділ: |
5 Безпека та дозволи на файли |
Тема: |
5.2 Створення користувачів і груп |
Урок: |
1 з 1 |
Вступ
Управління користувачами та групами на комп’ютері Linux є одним із ключових аспектів системного адміністрування. Насправді Linux є багатокористувацькою операційною системою, в якій кілька користувачів можуть використовувати один комп’ютер одночасно.
Інформація про користувачів і групи зберігається в чотирьох файлах у дереві каталогів /etc/
:
/etc/passwd
-
файл із семи полів, розділених двокрапками, що містить основну інформацію про користувачів
/etc/group
-
файл із чотирьох полів, розділених двокрапками, що містить основну інформацію про групи
/etc/shadow
-
файл із дев’яти полів, розділених двокрапками, що містить зашифровані паролі користувачів
/etc/gshadow
-
файл із чотирьох полів, розділених двокрапками, що містять зашифровані паролі груп
Усі ці файли оновлюються набором інструментів командного рядку для керування користувачами та групами, які ми обговоримо пізніше в цьому уроці. Також цими файлами можна керувати за допомогою графічних застосунків, специфічних для кожного дистрибутива Linux, які забезпечують прості та зрозумілі інтерфейси керування.
Warning
|
Навіть якщо файли є звичайним текстом, не редагуйте їх безпосередньо. Завжди використовуйте для цього інструменти, що надаються разом із дистрибутивом. |
Файл /etc/passwd
/etc/passwd
– це доступний для читання файл, який містить список користувачів, кожен користувач в окремому рядку:
frank:x:1001:1001::/home/frank:/bin/bash
Кожен рядок складається з семи полів, розділених двокрапкою:
- Ім’я користувача
-
Ім’я, яке використовується під час входу користувача в систему.
- Пароль
-
Зашифрований пароль (або
x
, якщо використовуються тіньові паролі). - ID користувача (UID)
-
Ідентифікаційний номер, призначений користувачеві в системі.
- ID групи (GID)
-
Номер основної групи користувача в системі.
- GECOS
-
Поле для коментарів, яке використовується для додаткової інформації про користувача (наприклад, повне ім’я). Поле може містити кілька записів, розділених комами.
- Домашній каталог
-
Абсолютний шлях до домашнього каталогу користувача.
- Оболонка
-
Абсолютний шлях до файлу програми, який автоматично запускається, коли користувач входить в систему (зазвичай це інтерактивна оболонка, наприклад
/bin/bash
).
Файл /etc/group
/etc/group
– це доступний для читання файл, який містить список груп, кожна в окремому рядку:
developer:x:1002:
Кожен рядок складається з чотирьох полів, розділених двокрапкою:
- Ім’я групи
-
Назва групи.
- Пароль групи
-
Зашифрований пароль групи (або
x
, якщо використовуються тіньові паролі). - ID групи (GID)
-
Ідентифікаційний номер, призначений групі в системі.
- Список членів
-
Розділений комами список користувачів, які належать до групи, за винятком тих, для яких ця група є основною.
Файл /etc/shadow
/etc/shadow
– це файл, доступний для читання лише користувачу root та користувачам з правами root і містить зашифровані паролі користувачів, кожен із яких розміщено в окремому рядку:
frank:$6$i9gjM4Md4MuelZCd$7jJa8Cd2bbADFH4dwtfvTvJLOYCCCBf/.jYbK1IMYx7Wh4fErXcc2xQVU2N1gb97yIYaiqH.jjJammzof2Jfr/:18029:0:99999:7:::
Кожен рядок складається з дев’яти полів, розділених двокрапкою:
- Ім’я користувача
-
Ім’я, яке використовується під час входу користувача в систему.
- Зашифрований пароль
-
Зашифрований пароль користувача (якщо значення
!
, обліковий запис заблоковано). - Дата останньої зміни пароля
-
Дата останньої зміни пароля, вимірюється в днях з дати 01.01.1970. Значення
0
означає, що користувач повинен змінити пароль під час наступного входу. - Мінімальний термін дії паролю
-
Мінімальна кількість днів після зміни пароля, яка має пройти, перш ніж користувачеві буде дозволено знову змінити пароль.
- Максимальний термін дії паролю
-
Максимальна кількість днів, яка має пройти до зміни пароля.
- Період попередження щодо паролю
-
Кількість днів до закінчення терміну дії пароля, протягом яких користувач отримує попередження про необхідність зміни пароля.
- Період неактивності паролю
-
Кількість днів після закінчення терміну дії паролю, протягом яких користувач повинен оновити пароль. Після закінчення цього терміну, якщо користувач не змінить пароль, обліковий запис буде відключено.
Термін дії облікового запису: Дата, яка визначається кількістю днів з 01.01.1970, протягом яких обліковий запис користувача буде вимкнено. Порожнє поле означає, що обліковий запис користувача має необмежений термін.
- Зарезервовано поле
-
Поле, яке зарезервовано для майбутнього використання.
Файл /etc/gshadow
/etc/gshadow
– це файл, доступний для читання лише користувачу root та користувачам з правами root, який містить зашифровані паролі для груп, кожна в окремому рядку:
developer:$6$7QUIhUX1WdO6$H7kOYgsboLkDseFHpk04lwAtweSUQHipoxIgo83QNDxYtYwgmZTCU0qSCuCkErmyR263rvHiLctZVDR7Ya9Ai1::
Кожен рядок складається з чотирьох полів, розділених двокрапкою:
- Ім’я групи
-
Назва групи.
- Зашифрований пароль
-
Зашифрований пароль для групи (він використовується, коли користувач, який не є членом групи, хоче приєднатися до групи за допомогою команди
newgrp
- якщо пароль починається з!
, нікому не дозволено отримати доступ до групи за допомогоюnewgrp
). - Група адміністраторів
-
Розділений комами список адміністраторів групи (вони можуть змінювати пароль групи і можуть додавати або видаляти учасників групи за допомогою команди
gpasswd
). - Члени групи
-
Список учасників групи, розділений комами.
Тепер, коли ми побачили, де зберігається інформація про користувачів і групи, давайте поговоримо про найважливіші інструменти командного рядку для оновлення цих файлів..
Додавання та видалення облікових записів користувачів
У Linux ви додаєте новий обліковий запис користувача за допомогою команди useradd
і видаляєте обліковий запис користувача за допомогою команди userdel
.
Якщо ви хочете створити новий обліковий запис користувача під назвою frank
із налаштуванням за замовчуванням, ви можете запустити наступну команду:
# useradd frank
Після створення нового користувача ви можете встановити пароль за допомогою passwd
:
# passwd frank Changing password for user frank. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
Обидві ці команди вимагають прав root. Коли ви запускаєте команду useradd
, інформація про користувача та групу, що зберігається в базах даних паролів і груп, оновлюється для новоствореного облікового запису користувача, і, якщо вказано, створюється домашній каталог нового користувача, а також група з тим самим ім’я як і обліковий запис користувача.
Tip
|
Пам’ятайте, що ви завжди можете використовувати утиліту grep для фільтрації баз даних паролів і груп, щоб відобразити лише запис, який стосується певного користувача або групи. Для наведеного вище прикладу можна використовувати
або
щоб переглянути основну інформацію про щойно створений обліковий запис |
Найважливішими параметрами, які застосовуються до команди useradd
, є:
-c
-
Створює новий обліковий запис користувача з коментарями (наприклад, повне ім’я).
-d
-
Створює новий обліковий запис користувача з його домашнім каталогом.
-e
-
Створює новий обліковий запис користувача, встановивши конкретну дату, коли його буде вимкнено.
-f
-
Створює новий обліковий запис користувача, встановивши кількість днів після закінчення терміну дії пароля, протягом яких користувач повинен оновити пароль.
-g
-
Створює новий обліковий запис користувача з певним GID.
-G
-
Створює новий обліковий запис користувача, додавши його до кількох вторинних груп.
-m
-
Створює новий обліковий запис користувача з його домашнім каталогом.
-M
-
Створює новий обліковий запис користувача без його домашнього каталогу.
-s
-
Створює новий обліковий запис користувача з певною оболонкою для входу.
-u
-
Створює новий обліковий запис користувача з певним UID.
Після створення нового облікового запису користувача ви можете використовувати команди id
та groups
, щоб дізнатися його UID, GID та групи, до яких він належить.
# id frank uid=1000(frank) gid=1000(frank) groups=1000(frank) # groups frank frank : frank
Tip
|
Не забудьте перевірити і в кінцевому підсумку відредагувати файл |
Якщо ви хочете видалити обліковий запис користувача, ви можете скористатися командою userdel
. Зокрема, ця команда оновлює інформацію, що зберігається в базах даних облікових записів, видаляючи всі записи, що стосуються зазначеного користувача. Параметр -r
також видаляє домашній каталог користувача та весь його вміст, а також спулер електронної пошти користувача. Інші файли, розташовані в іншому місці, потрібно шукати та видаляти вручну.
# userdel -r frank
Як і раніше, вам потрібні права root для видалення облікових записів користувачів.
Структурний каталог
Коли ви додаєте новий обліковий запис користувача, навіть створюєте його домашній каталог, новостворений домашній каталог заповнюється файлами та папками, які копіюються зі структурного каталогу (за замовчуванням /etc/skel
). Ідея цього проста: системний адміністратор хоче додати нових користувачів, які мають ті самі файли та каталоги у своєму домашньому каталозі. Тому, якщо ви хочете налаштувати файли та папки, які автоматично створюються в домашньому каталозі нових облікових записів користувачів, ви повинні додати ці нові файли та папки до структурного каталогу.
Tip
|
Зауважте, що файли профілів, які зазвичай знаходяться в структурному каталозі, є прихованими файлами. Тому, якщо ви хочете переглянути всі файли та папки в структурному каталозі, які будуть скопійовані в домашній каталог новостворених користувачів, ви повинні використовувати команду |
Додавання та видалення груп
Що стосується керування групами, ви можете додавати або видаляти групи за допомогою команд groupadd
і groupdel
.
Якщо ви хочете створити нову групу з іменем developer
, ви можете запустити наступну команду з правами root:
# groupadd -g 1090 developer
Параметр -g
цієї команди створює групу з певним GID.
Якщо ви хочете видалити групу developer
, ви можете виконати наступну команду:
# groupdel developer
Warning
|
Пам’ятайте, що коли ви додаєте новий обліковий запис користувача, основна група та вторинні групи, до яких він належить, повинні існувати до запуску команди |
Команда passwd
Ця команда в основному використовується для зміни паролю користувача. Будь-який користувач може змінити свій пароль, але тільки root може змінити пароль будь-якого користувача.
Залежно від параметра passwd
, який використовується, ви можете контролювати певні аспекти часу дії паролю:
-d
-
Видалення паролю облікового запису користувача (таким чином також відключається користувач).
-e
-
Змусити змінити пароль для облікового запису користувача.
-l
-
Блокувати обліковий запис користувача (зашифрований пароль має префікс оклику).
-u
-
Розблокувати обліковий запис користувача (усуває знак оклику).
-S
-
Вивести інформацію про статус паролю для певного облікового запису.
Ці параметри доступні лише для root. Щоб переглянути повний список опцій, зверніться до man-сторінок.
Вправи до посібника
-
Для кожного з наступних записів вкажіть файл, на який він посилається:
-
developer:x:1010:frank,grace,dave
-
root:x:0:0:root:/root:/bin/bash
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
-
staff:!:dave:carol,emma
-
-
Зверніть увагу на результат виконання команди, щоб відповісти на наступні сім питань:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
Який ідентифікатор користувача (UID) та ідентифікатор групи (GID)
carol
? -
Яка оболонка встановлена для
dave
іhenry
? -
Як називається основна група користувача
henry
? -
Хто члени групи
web_developer
? Хто з них є адміністратором групи? -
Хто з користувачів не може увійти в систему?
-
Хто з користувачів повинен змінити пароль наступного разу під час входу до системи?
-
Скільки днів має пройти, перш ніж потрібно буде змінити пароль для
carol
?
-
Дослідницькі вправи
-
Під обліковим записом root, запустіть команду
useradd -m dave
, щоб додати новий обліковий запис користувача. Які операції виконує ця команда? Припустимо, що дляCREATE_HOME
таUSERGROUPS_ENAB
у/etc/login.defs
встановлено значення yes. -
Тепер, коли ви створили обліковий запис
dave
, чи може цей користувач увійти до системи? -
Визначте ідентифікатор користувача (UID) та ідентифікатор групи (GID) для
dave
та всіх членів групиdave
. -
Створіть групи
sys_admin
,web_admin
іdb_admin
та визначте їх ідентифікатори груп (GID). -
Додайте новий обліковий запис користувача під назвою
carol
з UID 1035 і встановітьsys_admin
як його основну групу, аweb_admin
іdb_admin
як його додаткові групи. -
Видаліть облікові записи користувачів
dave
таcarol
, а також групиsys_admin
,web_admin
таdb_admin
, які ви створили раніше. -
Виконайте команду
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
і опишіть результат, який вона дає вам з точки зору дозволів на файл. Який із цих чотирьох файлів затінений з міркувань безпеки? Припустимо, що ваша система використовує тіньові паролі. -
Виконайте команду
ls -l /usr/bin/passwd
. Який спеціальний біт встановлений і яке його значення?
Підсумки
У цьому уроці ви дізналися про те:
-
Основи керування користувачами та групами в Linux.
-
Керування інформацією про користувачів і групи, яка зберігається в базах даних паролів і груп.
-
Використання структурного каталогу.
-
Додавання та видалення облікових записів користувачів.
-
Додавання та видалення облікових записів груп.
-
Зміну паролю облікових записів користувачів.
На цьому уроці розглядались наступні команди:
useradd
-
Створення нового облікового запису користувача.
groupadd
-
Створення нового облікового запису групи.
userdel
-
Видалення облікового запису користувача.
groupdel
-
Видалення облікового запису групи.
passwd
-
Зміна паролю облікових записів користувачів і контролювання всіх аспектів терміну дії паролю.
Відповіді до вправ посібника
-
Для кожного з наступних записів вкажіть файл, на який він посилається:
-
developer:x:1010:frank,grace,dave
/etc/group
-
root:x:0:0:root:/root:/bin/bash
/etc/passwd
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
/etc/shadow
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
/etc/passwd
-
staff:!:dave:carol,emma
/etc/gshadow
-
-
Зверніть увагу на результат виконання команди, щоб відповісти на наступні сім питань:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
Який ідентифікатор користувача (UID) та ідентифікатор групи (GID)
carol
?UID — 1051, а GID — 1015 (третє і четверте поля в
/etc/passwd
). -
Яка оболонка встановлена для
dave
іhenry
?dave
використовує /bin/bash, аhenry
використовує /bin/tcsh (сьоме поле в/etc/passwd
). -
Як називається основна група користувача
henry
?Ім’я групи –
web_admin
(перше поле в/etc/group
). -
Хто члени групи
web_developer
? Хто з них є адміністратором групи?Членами є
grace
,kevin
таchristian
(четверте поле в/etc/group
), але тількиkevin
є адміністратором групи (третє поле в/etc/gshadow
). -
Хто з користувачів не може увійти в систему?
Обліковий запис користувача
henry
заблоковано (він має знак оклику перед хешами паролю в/etc/shadow
). -
Хто з користувачів повинен змінити пароль наступного разу під час входу до системи?
Якщо третє поле (дата останньої зміни пароля) в
/etc/shadow
дорівнює 0, користувач повинен змінити свій пароль наступного разу під час входу до ситеми. Томуdave
повинен змінити свій пароль. -
Скільки днів має пройти, перш ніж потрібно буде змінити пароль для
carol
?60 днів (п’яте поле в
/etc/shadow
).
-
Відповіді до дослідницьких вправ
-
Під обліковим записом root, запустіть команду
useradd -m dave
, щоб додати новий обліковий запис користувача. Які операції виконує ця команда? Припустимо, що дляCREATE_HOME
таUSERGROUPS_ENAB
у/etc/login.defs
встановлено значення yes.Команда додає нового користувача з ім’ям
dave
до списку користувачів у системі. Створюється домашній каталогdave
(за замовчуванням/home/dave
), а файли та каталоги, що містяться в структурному каталозі, копіюються до домашнього каталогу. Нарешті, нова група створюється з тим же ім’ям, що й обліковий запис користувача. -
Тепер, коли ви створили обліковий запис
dave
, чи може цей користувач увійти до системи?Ні, тому що обліковий запис
dave
заблоковано (див. знак оклику в/etc/shadow
).# cat /etc/shadow | grep dave dave:!:18015:0:99999:7:::
Якщо ви встановите пароль для
dave
, обліковий запис буде розблоковано. Ви можете зробити це за допомогою командиpasswd
.# passwd dave Changing password for user dave. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
Визначте ідентифікатор користувача (UID) та ідентифікатор групи (GID) для
dave
та всіх членів групиdave
.# cat /etc/passwd | grep dave dave:x:1015:1019::/home/dave:/bin/sh # cat /etc/group | grep 1019 dave:x:1019:
UID і GID для
dave
становлять 1015 і 1019 відповідно (третє та четверте поля в/etc/passwd
), а групаdave
не має членів (четверте поле в/etc/group
порожнє) . -
Створіть групи
sys_admin
,web_admin
іdb_admin
та визначте їх ідентифікатори груп (GID).# groupadd sys_admin # groupadd web_admin # groupadd db_admin # cat /etc/group | grep admin sys_admin:x:1020: web_admin:x:1021: db_admin:x:1022:
Ідентифікатори GID для груп
sys_admin
,web_admin
таdb_admin
становлять 1020, 1021 та 1022 відповідно. -
Додайте новий обліковий запис користувача під назвою
carol
з UID 1035 і встановітьsys_admin
як його основну групу, аweb_admin
іdb_admin
як його додаткові групи.# useradd -u 1035 -g 1020 -G web_admin,db_admin carol # id carol uid=1035(carol) gid=1020(sys_admin) groups=1020(sys_admin),1021(web_admin),1022(db_admin)
-
Видаліть облікові записи користувачів
dave
таcarol
, а також групиsys_admin
,web_admin
таdb_admin
, які ви створили раніше.# userdel -r dave # userdel -r carol # groupdel sys_admin # groupdel web_admin # groupdel db_admin
-
Виконайте команду
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
і опишіть результат, який вона дає вам з точки зору дозволів на файл. Який із цих чотирьох файлів затінений з міркувань безпеки? Припустимо, що ваша система використовує тіньові паролі.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Файли
/etc/passwd
та/etc/group
доступні для читання та затінені з міркувань безпеки. Коли використовуються тіньові паролі, ви можете побачитиx
у другому полі цих файлів, оскільки зашифровані паролі для користувачів і груп зберігаються в/etc/shadow
та/etc/gshadow
, які доступні для читання лише root, а в деяких системах також членами, що належать до групиshadow
. -
Виконайте команду
ls -l /usr/bin/passwd
. Який спеціальний біт встановлений і яке його значення?# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
Команда
passwd
має біт SUID (четвертий символ цього рядка), що означає, що команда виконується з привілеями власника файлу (у цьому прикладі root). Таким чином звичайні користувачі можуть змінити свій пароль.