107.1 Урок 1
Сертифікат: |
LPIC-1 |
---|---|
Версія: |
5.0 |
Розділ: |
107 Адміністративні завдання |
Тема: |
107.1 Керування обліковими записами користувачів і груп і відповідними системними файлами |
Урок: |
1 з 2 |
Вступ
Адміністрування користувачів і груп є дуже важливою частиною роботи будь-якого системного адміністратора. Сучасні дистрибутиви Linux реалізують графічні інтерфейси, які дозволяють швидко й легко керувати всіма діями, пов’язаними з цим ключовим аспектом. Такі інтерфейси відрізняються один від одного графічним оформленням, але функції однакові. За допомогою цих інструментів ви можете переглядати, редагувати, додавати та видаляти локальних користувачів і групи. Однак для більш розширеного керування вам потрібно працювати через командний рядок.
Додавання облікових записів користувачів
У Linux ви можете додати новий обліковий запис користувача за допомогою команди useradd
. Наприклад, діючи з привілеями root, ви можете створити новий обліковий запис користувача з іменем michael
із налаштуванням за замовчуванням, використовуючи наступне:
# useradd michael
Коли ви виконуєте команду useradd
, інформація про користувачів та групи, що зберігається в базах даних паролів і груп, оновлюється для новоствореного облікового запису користувача, а також, якщо вказано, створюється домашній каталог нового користувача. Також створюється група з іменем нового облікового запису користувача.
Після створення нового користувача ви можете встановити його пароль за допомогою команди passwd
. Ви можете переглянути його ідентифікатор користувача (UID), ідентифікатор групи (GID) і груп, до яких він належить, за допомогою команд id
і groups
.
# passwd michael Changing password for user michael. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. # id michael uid=1000(michael) gid=100(michael) groups=100(michael) # groups michael michael : michael
Note
|
Пам’ятайте, що будь-який користувач може переглянути свій UID, GID і групи, до яких він належить, просто використовуючи команди |
Найважливіші параметри, які застосовуються до команди useradd
:
-c
-
створити новий обліковий запис користувача з власними коментарями (наприклад, повне ім’я користувача).
-d
-
створити новий обліковий запис користувача з власним домашнім каталогом.
-e
-
створити новий обліковий запис користувача, встановивши конкретну дату, коли його буде вимкнено.
-f
-
створити новий обліковий запис користувача, встановивши кількість днів після закінчення терміну дії пароля, протягом якого користувач повинен оновити пароль (інакше обліковий запис буде вимкнено).
-g
-
створити новий обліковий запис користувача з певним GID.
-G
-
створити новий обліковий запис користувача, додавши його до кількох вторинних груп.
-k
-
створити новий обліковий запис користувача, скопіювавши шаблонні файли з певного спеціального каталогу (цей параметр дійсний, лише якщо вказано параметр
-m
або--create-home
). -m
-
створити новий обліковий запис користувача з його домашнім каталогом (якщо він не існує).
-M
-
створити новий обліковий запис користувача без домашнього каталогу.
-s
-
створити новий обліковий запис користувача з певною оболонкою входу.
-u
-
створити новий обліковий запис користувача з певним UID.
Перегляньте man-сторінки для команди useradd
, щоб отримати повний список параметрів.
Змінення облікових записів користувачів
Іноді вам потрібно змінити атрибут існуючого облікового запису користувача, наприклад ім’я для входу, оболонку для входу, термін дії пароля тощо. У таких випадках вам потрібно використовувати команду usermod
.
# usermod -s /bin/tcsh michael # usermod -c "Michael User Account" michael
Так само, як і для команди useradd
, для команди usermod
потрібні привілеї root.
У наведених вище прикладах спочатку змінено оболонку входу michael
, а потім до цього облікового запису користувача додано короткий опис. Пам’ятайте, що ви можете змінити кілька атрибутів одночасно, вказавши їх в одній команді.
Найважливіші параметри, які застосовуються до команди usermod
:
-c
-
додати короткий коментар до вказаного облікового запису користувача.
-d
-
змінити домашній каталог указаного облікового запису користувача. Якщо використовується з опцією
-m
, вміст поточного домашнього каталогу переміщується до нового домашнього каталогу, який створюється, якщо він ще не існує. -e
-
встановити дату закінчення терміну дії вказаного облікового запису користувача.
-f
-
встановити кількість днів після закінчення терміну дії пароля, протягом якого користувач повинен оновити пароль (інакше обліковий запис буде вимкнено).
-g
-
змінити основну групу вказаного облікового запису користувача (група має існувати).
-G
-
додати вторинні групи до вказаного облікового запису користувача. Кожна група має існувати та відділятися від наступної комою без пробілів. Якщо використовується окремо, цей параметр видаляє всі існуючі групи, до яких належить користувач, тоді як, якщо використовується з параметром
-a
, він просто додає нові вторинні групи до існуючих. -l
-
змінити ім’я для входу вказаного облікового запису користувача.
-L
-
заблокувати вказаний обліковий запис користувача. Це ставить знак оклику перед зашифрованим паролем у файлі
/etc/shadow
, таким чином вимикаючи доступ із паролем для цього користувача. -s
-
змінити оболонку входу вказаного облікового запису користувача.
-u
-
змінити UID зазначеного облікового запису користувача.
-U
-
розблокувати вказаний обліковий запис користувача. Це видаляє знак оклику перед зашифрованим паролем у файлі
/etc/shadow
.
Перегляньте man-сторінки для команди usermod
, щоб отримати повний список параметрів.
Tip
|
Пам’ятайте, що коли ви змінюєте ім’я для входу в обліковий запис користувача, вам, імовірно, слід перейменувати домашній каталог цього користувача та інші елементи, пов’язані з користувачем, наприклад файли буфера електронної пошти. Також пам’ятайте, що коли ви змінюєте UID облікового запису користувача, вам, імовірно, слід виправити право власності на файли та каталоги за межами домашнього каталогу користувача (ідентифікатор користувача змінюється автоматично для поштової скриньки користувача та для всіх файлів, які належать користувачу та розташовані в домашньому каталозі користувача). |
Видалення облікових записів користувачів
Якщо ви хочете видалити обліковий запис користувача, ви можете скористатися командою userdel
. Зокрема, ця команда оновлює інформацію, що зберігається в базах даних облікових записів, видаляючи всі записи, що стосуються зазначеного користувача. Параметр -r
також видаляє домашній каталог користувача та весь його вміст разом із буфером електронної пошти користувача. Інші файли, розташовані в інших місцях, потрібно шукати та видаляти вручну.
# userdel -r michael
Так само, як для useradd
і usermod
, для видалення облікових записів користувачів потрібні права root.
Додавання, зміна та видалення груп
Подібно до керування користувачами, ви можете додавати, змінювати та видаляти групи за допомогою команд groupadd
, groupmod
і groupdel
з правами root. Якщо ви хочете створити нову групу під назвою developer
, ви можете виконати таку команду:
# groupadd -g 1090 developer
Опція -g
цієї команди створює групу з певним GID.
Warning
|
Пам’ятайте, що коли ви додаєте новий обліковий запис користувача, первинна група та вторинні групи, до яких він належить, повинні існувати до запуску команди |
Пізніше, якщо ви захочете перейменувати групу з developer
на web-developer
і змінити її GID, ви можете виконати наступну команду:
# groupmod -n web-developer -g 1050 developer
Tip
|
Пам’ятайте, що якщо ви змінюєте GID за допомогою параметра |
Нарешті, якщо ви хочете видалити групу web-developer
, ви можете виконати наступне:
# groupdel web-developer
Ви не можете видалити групу, якщо вона є основною групою облікового запису користувача. Тому ви повинні видалити користувача перед видаленням групи. Що стосується користувачів, якщо ви видаляєте групу, файли, що належать до цієї групи, залишаються у вашій файловій системі й не видаляються та не призначаються іншій групі.
Шаблонний каталог
Коли ви додаєте новий обліковий запис користувача, навіть створюючи його домашній каталог, новостворений домашній каталог заповнюється файлами та папками, які копіюються з шаблонного каталогу (за замовчуванням /etc/skel
). Ідея цього проста: системний адміністратор хоче додати нових користувачів, які мають ті самі файли та каталоги у своїй домашній папці. Таким чином, якщо ви хочете налаштувати файли та папки, які автоматично створюються в домашньому каталозі нових облікових записів користувачів, ви повинні додати ці нові файли та папки до шаблонного каталогу.
Tip
|
Зауважте, що якщо ви хочете отримати список усіх файлів і каталогів у шаблонному каталозі, ви повинні використати команду |
Файл /etc/login.defs
У Linux файл /etc/login.defs
визначає параметри конфігурації, які керують створенням користувачів і груп. Крім того, команди, показані в попередніх розділах, приймають значення за замовчуванням із цього файлу.
Найважливіші директиви:
UID_MIN
іUID_MAX
-
Діапазон ідентифікаторів користувачів, які можна призначити новим звичайним користувачам.
GID_MIN
іGID_MAX
-
Діапазон ідентифікаторів груп, які можна призначити новим звичайним групам.
CREATE_HOME
-
Вказує, чи слід створювати домашній каталог за замовчуванням для нових користувачів.
USERGROUPS_ENAB
-
Вказує, чи повинна система за замовчуванням створювати нову групу для кожного нового облікового запису користувача з тим же іменем, що й у користувача, і чи видалення облікового запису користувача також має видаляти основну групу користувача, якщо вона більше не містить учасників.
MAIL_DIR
-
Каталог буфера електронної пошти.
PASS_MAX_DAYS
-
Максимальна кількість днів, протягом яких можна використовувати пароль.
PASS_MIN_DAYS
-
Мінімальна кількість днів між змінами пароля.
PASS_MIN_LEN
-
Мінімально прийнятна довжина пароля.
PASS_WARN_AGE
-
Кількість днів попередження до закінчення терміну дії пароля.
Tip
|
Під час керування користувачами та групами завжди перевіряйте цей файл, щоб переглянути та, зрештою, змінити типову поведінку системи, якщо це необхідно. |
Команда passwd
Ця команда в основному використовується для зміни пароля користувача. Як описано раніше, будь-який користувач може змінити свій власний пароль, але лише root може змінити пароль будь-якого користувача. Це відбувається тому, що команда passwd
має встановлений біт SUID (s
замість позначки виконуваного файлу для власника). Це означає, що вона виконується з привілеями власника файлу (отже, root).
# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
Залежно від параметрів passwd
, які використовуються, ви можете контролювати певні аспекти старіння пароля:
-d
-
Видалити пароль облікового запису користувача (таким чином вимкнувши користувача).
-e
-
Змусити змінити пароль для облікового запису користувача.
-i
-
Встановити кількість днів бездіяльності після закінчення терміну дії пароля, протягом яких користувач повинен оновити пароль (інакше обліковий запис буде вимкнено).
-l
-
Блокування облікового запису користувача (зашифрований пароль має префікс знаку оклику у файлі
/etc/shadow
). -n
-
Встановити мінімальний термін дії пароля.
-S
-
Вивести інформацію про статус пароля певного облікового запису користувача.
-u
-
Розблокувати обліковий запис користувача (знак оклику видалено з поля пароля у файлі
/etc/shadow
). -x
-
Встановити максимальний термін дії пароля.
-w
-
Встановити кількість днів попередження до закінчення терміну дії пароля, протягом яких користувач буде попереджений про необхідність змінити пароль.
Note
|
Групи також можуть мати пароль, який можна встановити за допомогою команди |
Команда chage
Ця команда, яка розшифровується як “change age”, використовується для зміни інформації про старість пароля користувача. Команда chage
обмежена для користувача root, за винятком опції -l
, яку можуть використовувати звичайні користувачі для перегляду інформації про старіння пароля свого облікового запису.
Інші параметри, які застосовуються до команди chage
:
-d
-
Встановити останню зміну пароля для облікового запису користувача.
-E
-
Встановити дату закінчення терміну дії облікового запису користувача.
-I
-
Встановити кількість днів бездіяльності після закінчення терміну дії пароля, протягом яких користувач повинен оновити пароль (інакше обліковий запис буде вимкнено).
-m
-
Встановити мінімальний термін дії пароля для облікового запису користувача.
-M
-
Встановити максимальний термін дії пароля для облікового запису користувача.
-W
-
Встановити кількість днів попередження до закінчення терміну дії пароля, протягом яких користувач буде попереджений про необхідність змінити пароль.
Вправи до посібника
-
Для кожної з наступних команд визначте відповідну мету:
usermod -L
passwd -u
chage -E
groupdel
useradd -s
groupadd -g
userdel -r
usermod -l
groupmod -n
useradd -m
-
Для кожної з наступних команд
passwd
визначте відповідну командуchage
:passwd -n
passwd -x
passwd -w
passwd -i
passwd -S
-
Поясніть детально призначення команд у попередньому питанні:
-
Якими командами можна заблокувати обліковий запис користувача? І якими командами його розблокувати?
Дослідницькі вправи
-
За допомогою команди
groupadd
створіть групиadministrators
іdevelopers
. Припустимо, що ви працюєте як root. -
Тепер, коли ви створили ці групи, виконайте таку команду:
useradd -G administrators,developers kevin
. Які операції виконує ця команда? Припустімо, що дляCREATE_HOME
іUSERGROUPS_ENAB
у/etc/login.defs
встановлено значенняyes
. -
Створіть нову групу під назвою
designers
, перейменуйте її наweb-designers
і додайте цю нову групу до вторинних груп облікового запису користувачаkevin
. Визначте всі групи, до яких належитьkevin
, та їхні ідентифікатори. -
Видаліть лише групу
developers
із вторинних групkevin
. -
Встановіть пароль для облікового запису користувача
kevin
. -
Використовуючи команду
chage
, спочатку перевірте термін дії облікового запису користувачаkevin
, а потім змініть його на 31 грудня 2022 року. За допомогою якої іншої команди можна змінити дату закінчення терміну дії облікового запису користувача? -
Додайте новий обліковий запис користувача під назвою
emma
з UID 1050 і встановітьадміністратори
як основну групу, арозробники
тавеб-дизайнери
як вторинні групи. -
Змініть оболонку входу
emma
на/bin/sh
. -
Видаліть облікові записи користувачів
emma
іkevin
, а також групиadministrators
,developers
іweb-designers
.
Підсумки
На цьому уроці ви дізналися:
-
Основи керування користувачами та групами в Linux.
-
Як додавати, змінювати та видаляти облікові записи користувачів.
-
Як додавати, змінювати та видаляти облікові записи групи.
-
Підтримка шаблонного каталогу.
-
Редагування файлу, який керує створенням користувачів і груп.
-
Зміна паролів облікових записів користувачів.
-
Зміна інформації про старіння пароля облікових записів користувачів.
У цьому уроці обговорювалися такі файли та команди:
useradd
-
Створити новий обліковий запис користувача.
usermod
-
Змінити обліковий запис користувача.
userdel
-
Видалити обліковий запис користувача.
groupadd
-
Створити новий обліковий запис групи.
groupmod
-
Змінити обліковий запис групи.
groupdel
-
Видалити обліковий запис групи.
passwd
-
Змінити пароль облікових записів користувачів і контролювати всі аспекти старіння пароля.
chage
-
Змінити інформацію про термін дії пароля користувача.
/etc/skel
-
Стандартне розташування шаблонного каталогу.
/etc/login.defs
-
Файл, який керує створенням користувачів і груп і надає значення за замовчуванням для деяки параметрів облікового запису користувача.
Відповіді до вправ посібника
-
Для кожної з наступних команд визначте відповідну мету:
usermod -L
Заблокувати обліковий запис користувача
passwd -u
Розблокувати обліковий запис користувача
chage -E
Встановити термін дії облікового запису користувача
groupdel
Видалити групу
useradd -s
Створити новий обліковий запис користувача зі спеціальною оболонкою входу
groupadd -g
Створити нову групу з певним GID
userdel -r
Видалити обліковий запис користувача та всі файли в його домашньому каталозі, сам домашній каталог та буферні файли електронної пошти користувача
usermod -l
Змінити ім’я для входу в обліковий запис користувача
groupmod -n
Змінити назву групи
useradd -m
Створити новий обліковий запис користувача та його домашній каталог
-
Для кожної з наступних команд
passwd
визначте відповідну командуchage
:passwd -n
chage -m
passwd -x
chage -M
passwd -w
chage -W
passwd -i
chage -I
passwd -S
chage -l
-
Поясніть детально призначення команд у попередньому питанні:
У Linux ви можете використовувати команду
passwd -n
(абоchage -m
), щоб встановити мінімальну кількість днів між змінами пароля, командуpasswd -x
(абоchage -M
), щоб встановити максимальну кількість днів, протягом яких пароль дійсний, командуpasswd -w
(абоchage -W
), щоб встановити кількість днів попередження до закінчення терміну дії пароля, командуpasswd -i
(абоchage -I
), щоб встановити кількість днів бездіяльності, протягом яких користувач повинен змінити пароль, і командуpasswd -S
(абоchage -l
), щоб показати коротку інформацію про пароль облікового запису користувача. -
Якими командами можна заблокувати обліковий запис користувача? І якими командами його розблокувати?
Якщо ви хочете заблокувати обліковий запис користувача, ви можете скористатися однією з цих команд:
usermod -L
,usermod --lock
іpasswd -l
. Натомість, якщо ви хочете його розблокувати, ви можете використатиusermod -U
,usermod --unlock
іpasswd -u
.
Відповіді до дослідницьких вправ
-
За допомогою команди
groupadd
створіть групиadministrators
іdevelopers
. Припустимо, що ви працюєте як root.# groupadd administrators # groupadd developers
-
Тепер, коли ви створили ці групи, виконайте таку команду:
useradd -G administrators,developers kevin
. Які операції виконує ця команда? Припустімо, що дляCREATE_HOME
іUSERGROUPS_ENAB
у/etc/login.defs
встановлено значенняyes
.Команда додає нового користувача з іменем
kevin
до списку користувачів у системі, створює його домашній каталог (CREATE_HOME
має значення yes, тому ви можете опустити параметр -m) і створює нову групу з назвоюkevin
як основну групу цього облікового запису користувача (USERGROUPS_ENAB
має значення yes). Нарешті, файли та папки, що містяться в шаблонному каталозі, копіюються до домашнього каталогуkevin
. -
Створіть нову групу під назвою
designers
, перейменуйте її наweb-designers
і додайте цю нову групу до вторинних груп облікового запису користувачаkevin
. Визначте всі групи, до яких належитьkevin
, та їхні ідентифікатори.# groupadd designers # groupmod -n web-designers designers # usermod -a -G web-designers kevin # id kevin uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1029(developers),1031(web-designers)
-
Видаліть лише групу
developers
із вторинних групkevin
.# usermod -G administrators,web-designers kevin # id kevin uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1031(web-designers)
Команда
usermod
не має можливості видалити лише одну групу; тому вам потрібно вказати всі вторинні групи, до яких належить користувач. -
Встановіть пароль для облікового запису користувача
kevin
.# passwd kevin Changing password for user kevin. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
Використовуючи команду
chage
, спочатку перевірте термін дії облікового запису користувачаkevin
, а потім змініть його на 31 грудня 2022 року. За допомогою якої іншої команди можна змінити дату закінчення терміну дії облікового запису користувача?# chage -l kevin | grep "Account expires" Account expires : never # chage -E 2022-12-31 kevin # chage -l kevin | grep "Account expires" Account expires : dec 31, 2022
Команда
usermod
з опцією-e
еквівалентнаchage -E
. -
Додайте новий обліковий запис користувача під назвою
emma
з UID 1050 і встановітьadministrators
як основну групу, аdevelopers
таweb-designers
як вторинні групи.# useradd -u 1050 -g administrators -G developers,web-designers emma # id emma uid=1050(emma) gid=1028(administrators) groups=1028(administrators),1029(developers),1031(web-designers)
-
Змініть оболонку входу
emma
на/bin/sh
.# usermod -s /bin/sh emma
-
Видаліть облікові записи користувачів
emma
іkevin
, а також групиadministrators
,developers
іweb-designers
.# userdel -r emma # userdel -r kevin # groupdel administrators # groupdel developers # groupdel web-designers