Керування користувачами¶
У цьому розділі ви дізнаєтесь, як керувати користувачами.
Цілі: у цьому розділі майбутні адміністратори Linux дізнаються, як:
додати, видалити або змінити групу;
додати, видалити або змінити користувача;
зрозуміти файли, пов’язані з користувачами та групами, і навчитися ними керувати;
змінити власника або власника групи файлу;
захистити облікові записи користувачів;
змінити ідентифікатор.
користувачі
Знання:
Складність:
Час читання: 30 хвилин
Загальні положення¶
Кожен користувач повинен мати групу, яка називається основною групою користувача.
Кілька користувачів можуть входити до однієї групи.
Групи, відмінні від основної, називаються додатковими групами користувача.
Важливо
Кожен користувач має основну групу і може бути запрошений до однієї або кількох додаткових груп.
Групи та користувачі керуються їхніми унікальними числовими ідентифікаторами GID
та UID
.
UID
: Ідентифікатор користувача. Унікальний ідентифікатор користувача.GID
: Ідентифікатор групи. Унікальний ідентифікатор групи.
І UID, і GID розпізнаються ядром, а це означає, що суперадміністратор не обов’язково є root користувачем, якщо uid=0 є суперадміністратором.
Файли, пов’язані з користувачами/групами:
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
- /etc/skel/
- /etc/default/useradd
- /etc/login.defs
Важливо
Ви завжди повинні використовувати команди адміністрування, а не редагувати файли вручну.
Примітка
Деякі команди в цьому розділі вимагають прав адміністратора.
За домовленістю ми вказуватимемо команду sudo
, коли команди мають виконуватися з правами адміністратора.
Щоб приклади працювали правильно, переконайтеся, що ваш обліковий запис має право використовувати команду sudo
.
Управління групою¶
Змінені файли, додані рядки:
/etc/group
/etc/gshadow
Команда groupadd
¶
Команда groupadd
додає групу до системи.
groupadd [-f] [-g GID] group
Приклад:
sudo groupadd -g 1012 GroupeB
Опція | Опис |
---|---|
-g GID |
GID групи для створення. |
-f |
Система обирає GID , якщо ідентифікатор, указаний параметром -g , уже існує. |
-r |
Створює системну групу з GID від SYS_GID_MIN до SYS_GID_MAX . Ці дві змінні визначено в /etc/login.defs . |
Правила іменування груп:
- Без наголосів і спеціальних символів;
- Відрізняється від імені існуючого користувача або системних файлів.
Примітка
У Debian адміністратор повинен використовувати, за винятком сценаріїв, призначених для перенесення на всі дистрибутиви Linux, команди addgroup
і delgroup
, як зазначено в man
:
$ man addgroup
ОПИС
adduser і addgroup додають користувачів і групи до системи відповідно до параметрів командного рядка та конфігураційної інформації
в /etc/adduser.conf. Вони є більш дружніми інтерфейсами для низькорівневих інструментів, таких як програми useradd, groupadd і usermod,
за замовчуванням, вибираючи значення UID та GID, що відповідають політиці Debian, створюючи домашній каталог зі скелетною конфігурацією,
запуск спеціального сценарію та інші функції.
Команда groupmod
¶
Команда groupmod
дозволяє вам змінити існуючу групу в системі.
groupmod [-g GID] [-n nom] group
Приклад:
sudo groupmod -g 1016 GroupP
sudo groupmod -n GroupC GroupB
Опція | Опис |
---|---|
-g GID |
Новий GID групи, яку потрібно змінити. |
-n name |
Нове ім'я. |
Можна змінити назву групи, її GID
або обидва одночасно.
Після модифікації файли, що належать до групи, мають невідомий GID
. Їх потрібно перепризначити новому GID
.
sudo find / -gid 1002 -exec chgrp 1016 {} \;
Команда groupdel
¶
Команда groupdel
видаляє наявну групу в системі.
groupdel group
Приклад:
sudo groupdel GroupC
Порада
При видаленні групи можуть виникнути дві умови:
- Якщо користувач має унікальну основну групу, і ви виконуєте команду
groupdel
для цієї групи, вам буде запропоновано, що в групі є певний користувач, і його не можна видалити. - Якщо користувач належить до додаткової групи (а не основної групи для користувача), і ця група не є основною групою для іншого користувача в системі, тоді команда
groupdel
видалить групу без додаткових підказки.
Приклади:
$ sudo useradd test
$ id test
uid=1000(test) gid=1000(test) group=1000(test)
$ sudo groupdel test
groupdel: cannot remove the primary group of user 'test'
$ sudo usermod -g users -G test test
$ id test
uid=1000(test) gid=100(users) group=100(users),1000(test)
$ sudo groupdel test
Підказка
Коли ви видаляєте користувача за допомогою команди userdel -r
, відповідна основна група також видаляється. Ім'я основної групи зазвичай збігається з ім'ям користувача.
Підказка
Кожна група має унікальний GID
. Групу можуть використовувати кілька користувачів як додаткову групу. За домовленістю GID суперадміністратора дорівнює 0. GIDS, зарезервовані для деяких служб або процесів, це 201-999, які називаються системними групами або псевдогрупами користувачів. GID для користувачів зазвичай більше або дорівнює 1000. Вони пов’язані з /etc/login.defs, про який ми поговоримо пізніше.
# Comment line ignored
shell > cat /etc/login.defs
MAIL_DIR /var/spool/mail
UMASK 022
HOME_MODE 0700
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
Підказка
Оскільки користувач обов’язково є частиною групи, найкраще створювати групи перед додаванням користувачів. Або в групі не буде жодного користувача.
Файл /etc/group
¶
Цей файл містить інформацію про групу (розділену :
).
$ sudo tail -1 /etc/group
GroupP:x:516:patrick
(1) (2)(3) (4)
- 1: Назва групи.
- 2: Пароль групи позначається
x
. Пароль групи зберігається в/etc/gshadow
. - 3: GID.
- 4: Додаткові користувачі в групі (за винятком унікального основного користувача).
Примітка
Кожен рядок у файлі /etc/group
відповідає групі. Інформація про основного користувача зберігається в /etc/passwd
.
Файл /etc/gshadow
¶
Цей файл містить інформацію про безпеку груп (розділених :
).
$ sudo grep GroupA /etc/gshadow
GroupA:$6$2,9,v...SBn160:alain:rockstar
(1) (2) (3) (4)
- 1: Назва групи.
- 2: Зашифрований пароль.
- 3: Ім'я адміністратора групи.
- 4: Додаткові користувачі в групі (за винятком унікального основного користувача).
Важливо
Назви групи в /etc/group і /etc/gshadow повинні відповідати одна за одною. Тобто кожен рядок у файлі /etc/group повинен мати відповідний рядок у файлі /etc/gshadow.
!
у паролі означає, що він заблокований. Таким чином, жоден користувач не може використовувати пароль для доступу до групи (оскільки членам групи він не потрібен).
Управління користувачами¶
Визначення¶
Користувач визначається наступним чином у файлі /etc/passwd
:
- 1: Логін;
- 2: ідентифікація пароля,
x
вказує, що користувач має пароль, зашифрований пароль зберігається у другому полі/etc/shadow
; - 3: UID;
- 4: GID первинної групи;
- 5: Коментарі;
- 6: Домашній каталог;
- 7: Оболонка (
/bin/bash
,/bin/nologin
, ...).
Є три типи користувачів:
- root(uid=0): системний адміністратор;
- користувачі системи (uid є одним із 201~999): використовується системою для керування правами доступу до програми;
- звичайний користувач(uid>=1000): інший обліковий запис для входу в систему.
Змінено файли, додано рядки:
/etc/passwd
/etc/shadow
Команда useradd
¶
Команда useradd
додає користувача.
useradd [-u UID] [-g GID] [-d directory] [-s shell] login
Приклад:
sudo useradd -u 1000 -g 1013 -d /home/GroupC/carine carine
Опція | Опис |
---|---|
-u UID |
UID користувача, який потрібно створити. |
-g GID |
GID основної групи. GID тут також може бути ім'ям групи . |
-G GID1,[GID2]... |
GID додаткових груп. GID тут також може бути ім'ям групи . Можна вказати декілька додаткових груп, розділених комами. |
-d каталог |
Створює домашній каталог. |
-s оболонка |
Визначає оболонку користувача. |
-c КОМЕНТАР |
Додає коментар. |
-U |
Додає користувача до групи з однаковою назвою, створеної одночасно. Якщо не вказано, створення групи з такою ж назвою відбувається під час створення користувача. |
-M |
Не створює домашній каталог користувача. |
-r |
Створює системний обліковий запис. |
Під час створення обліковий запис не має пароля та заблокований.
Для розблокування облікового запису користувач повинен призначити пароль.
Під час виклику команди useradd
без будь-яких параметрів для нового користувача встановлюються наступні параметри за замовчуванням:
- Створюється домашній каталог з іменем, яке збігається з іменем користувача;
- Буде створено первинну групу з іменем, яке збігається з іменем користувача;
- Користувачеві призначається типова оболонка, яка вказує на
/bin/bash
; - Значення UID користувача та основної групи GID виводяться автоматично. Зазвичай це унікальне значення від 1000 до 60 000.
Примітка
Параметри та значення за замовчуванням отримані з таких конфігураційних файлів:
/etc/login.defs
and /etc/default/useradd
$ sudo useradd test1
$ tail -n 1 /etc/passwd
test1:x:1000:1000::/home/test1:/bin/bash
$ tail -n 1 /etc/shadow
test1:!!:19253:0:99999:7
:::
$ tail -n 1 /etc/group ; tail -n 1 /etc/gshadow
test1:x:1000:
test1:!::
Правила іменування облікових записів:
- Допускаються малі літери, цифри та підкреслення; інші спеціальні символи, такі як зірочки, знаки відсотків і повноширинні символи, не приймаються.
- Незважаючи на те, що ви можете використовувати ім'я користувача у RockyLinux, ми не рекомендуємо його використовувати;
- Необов’язково: установіть параметри
-u
,-g
,-d
та-s
під час створення. - Відрізняється від імені існуючої групи або системного файлу;
- Ім'я користувача може містити до 32 символів.
Важливо
Користувач повинен створити домашній каталог, за винятком останнього каталогу.
Останній каталог створюється командою useradd
, яка використовує можливість копіювати файли з /etc/skel
до нього.
Користувач може належати до кількох груп на додаток до основної групи.
Приклад:
sudo useradd -u 1000 -g GroupA -G GroupP,GroupC albert
Примітка
У Debian вам доведеться вказати опцію -m
, щоб примусово створити каталог входу, або встановити змінну CREATE_HOME
у файлі /etc/login.defs
. У всіх випадках адміністратор повинен використовувати команди adduser
і deluser
, як зазначено в man
, за винятком сценаріїв, призначених для переносу на всі дистрибутиви Linux:
$ man useradd
ОПИС
**useradd** — це низькорівнева утиліта для додавання користувачів. У Debian адміністратори зазвичай повинні використовувати **adduser(8)**
замість цього.
Значення за замовчуванням для створення користувача.¶
Модифікація файлу /etc/default/useradd
.
useradd -D [-b directory] [-g group] [-s shell]
Приклад:
sudo useradd -D -g 1000 -b /home -s /bin/bash
Опція | Опис |
---|---|
-D |
Встановлює значення за замовчуванням для створення користувача. |
-b каталог |
Встановлює каталог для входу за замовчуванням. |
-g група |
Встановлює групу за замовчуванням. |
-s оболонка |
Встановлює оболонку за замовчуванням. |
-f |
Встановлює кількість днів після закінчення терміну дії пароля до вимкнення облікового запису. |
-e |
Встановлює дату відключення облікового запису. |
Команда usermod
¶
Команда usermod
дозволяє змінити користувача.
usermod [-u UID] [-g GID] [-d directory] [-m] login
Приклад:
sudo usermod -u 1044 carine
Параметри, ідентичні команді useradd
.
Опція | Опис |
---|---|
-m |
Пов’язана з опцією -d . Переміщує вміст старого каталогу входу до нового. Якщо старий домашній каталог не існує, створення нового домашнього каталогу не відбувається; створення нового домашнього каталогу відбувається, коли він не існує. |
-l login |
Змінює ім'я для входу. Після того, як ви змінили ім’я для входу, вам також потрібно змінити ім’я домашнього каталогу, щоб воно відповідало йому. |
-e YYYY-MM-DD |
Змінює термін дії облікового запису. |
-L |
Блокує обліковий запис назавжди. Тобто він додає ! на початку поля пароля /etc/shadow . |
-U |
Розблоковує обліковий запис. |
-а |
Додає додаткові групи користувача, які слід використовувати разом із опцією -G . |
-G |
Змінює додаткові групи користувача, щоб перезаписати попередні додаткові групи. |
Порада
Для внесення змін користувач має бути відключений і не мати запущених процесів.
Після зміни ідентифікатора файли, що належать користувачу, матимуть невідомий UID
. Його потрібно перепризначити новому UID
.
Де 1000
– це старий UID
, а 1044
– новий. Приклади:
sudo find / -uid 1000 -exec chown 1044: {} \;
Блокування та розблокування облікових записів користувачів. Приклади:
$ usermod -L test1
$ grep test1 /etc/shadow
test1:!$6$n.hxglA.X5r7X0ex$qCXeTx.kQVmqsPLeuvIQnNidnSHvFiD7bQTxU7PLUCmBOcPNd5meqX6AEKSQvCLtbkdNCn.re2ixYxOeGWVFI0:19259:0:99999:7
:::
$ usermod -U test1
Різницю між параметрами -aG
і -G
можна пояснити на такому прикладі:
$ sudo useradd test1
$ sudo passwd test1
$ sudo groupadd groupA ; sudo groupadd groupB ; sudo groupadd groupC ; sudo groupadd groupD
$ id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1)
$ sudo gpasswd -a test1 groupA
$ id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1),1002(groupA)
$ sudo usermod -G groupB,groupC test1
$ id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1),1003(groupB),1004(groupC)
$ sudo usermod -aG groupD test1
$ id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1),1003(groupB),1004(groupC),1005(groupD)
Команда userdel
¶
Команда userdel
дозволяє видалити обліковий запис користувача.
sudo userdel -r carine
Опція | Опис |
---|---|
-r |
Видаляє домашній каталог користувача та поштові файли, розташовані в каталозі /var/spool/mail/ |
Порада
Для видалення користувач має вийти з системи та не мати запущених процесів.
Команда userdel
видаляє відповідні рядки в /etc/passwd
, / etc/shadow
, /etc/group
, /etc/gshadow
. Як згадувалося вище, userdel -r
також видалить відповідну первинну групу користувача.
Файл /etc/passwd
¶
Цей файл містить інформацію про користувача (розділену :
).
$ sudo head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
(1)(2)(3)(4)(5) (6) (7)
- 1: Логін;
- 2: ідентифікація пароля,
x
вказує, що користувач має пароль, зашифрований пароль зберігається у другому полі/etc/shadow
; - 3: UID;
- 4: GID первинної групи;
- 5: Коментарі;
- 6: Домашній каталог;
- 7: Оболонка (
/bin/bash
,/bin/nologin
, ...).
Файл /etc/shadow
¶
Цей файл містить інформацію про безпеку користувачів (розділену :
).
$ sudo tail -1 /etc/shadow
root:$6$...:15399:0:99999:7
:::
(1) (2) (3) (4) (5) (6)(7,8,9)
- 1: Логін.
- 2: Зашифрований пароль. Використовує алгоритм шифрування SHA512, визначений
ENCRYPT_METHOD
/etc/login.defs
. - 3: час останньої зміни пароля, формат позначки часу, у днях. Так звана часова позначка базується на 1 січня 1970 року як стандартному часі. Щоразу, коли минає один день, мітка часу дорівнює +1.
- 4: Мінімальний термін дії пароля. Тобто проміжок часу між двома змінами пароля (щодо третього поля), у днях. Визначається
PASS_MIN_DAYS
/etc/login.defs
, за умовчанням дорівнює 0, тобто коли ви змінюєте пароль вдруге, обмежень немає. Але якщо він дорівнює 5, це означає, що змінювати пароль не можна протягом 5 днів, а лише через 5 днів. - 5: Максимальний термін дії пароля. Тобто термін дії пароля (що стосується третього поля). Визначається
PASS_MAX_DAYS
/etc/login.defs
. - 6: кількість днів попередження до закінчення терміну дії пароля (пов’язано з п’ятим полем). Типовим значенням є 7 днів, визначених
PASS_WARN_AGE
/etc/login.defs
. - 7: Кількість пільгових днів після закінчення терміну дії пароля (пов’язано з п’ятим полем).
- 8: Термін дії облікового запису, формат позначки часу, у днях. Зверніть увагу, що термін дії облікового запису відрізняється від терміну дії пароля. У разі закінчення терміну дії облікового запису користувач не має права входу. У разі закінчення терміну дії пароля користувачеві заборонено ввійти за допомогою свого пароля.
- 9: Зарезервовано для майбутнього використання.
Важливо
Для кожного рядка у файлі /etc/passwd
має бути відповідний рядок у файлі /etc/shadow
.
Для перетворення позначки часу та дати зверніться до такого формату команди:
# Мітка часу перетворюється на дату, «17718» вказує позначку часу, яку потрібно заповнити.
$ date -d "1970-01-01 17718 days"
# Дата перетворюється на позначку часу, «2018-07-06» вказує на дату, яку потрібно заповнити.
$ echo $(($(date --date="2018-07-06" +%s)/86400+1))
Власники файлів¶
Важливо
Усі файли обов'язково належать одному користувачеві та одній групі.
За замовчуванням основною групою користувача, який створює файл, є група, якій належить файл.
Команди модифікації¶
Команда chown
¶
Команда chown
дозволяє змінити власників файлу.
chown [-R] [-v] login[:group] file
Приклади:
sudo chown root myfile
sudo chown albert:GroupA myfile
Опція | Опис |
---|---|
-R |
Рекурсивно змінює власників каталогу та всіх файлів у каталозі. |
-v |
Відображає виконані зміни. |
Щоб змінити лише користувача-власника:
sudo chown albert file
Щоб змінити лише групу власників:
sudo chown :GroupA file
Зміна користувача та групи власників:
sudo chown albert:GroupA file
У наступному прикладі призначена група буде основною групою вказаного користувача.
sudo chown albert: file
Змінити власника та групу всіх файлів у каталозі
sudo chown -R albert:GroupA /dir1
команда chgrp
¶
Команда chgrp
дозволяє змінити групу власників файлу.
chgrp [-R] [-v] group file
Приклад:
sudo chgrp group1 file
Опція | Опис |
---|---|
-R |
Повторно змінюйте групи каталогу та всі файли під каталогом. |
-v |
Відображає виконані зміни. |
Примітка
До файлу можна застосувати власника та групу власників, взявши за посилання інші файли:
chown [options] --reference=RRFILE FILE
Наприклад:
chown --reference=/etc/groups /etc/passwd
Гостьовий менеджмент¶
Команда gpasswd
¶
Команда gpasswd
дозволяє керувати групою.
gpasswd [option] group
Приклади:
$ sudo gpasswd -A alain GroupA
[alain]$ gpasswd -a patrick GroupA
Опція | Опис |
---|---|
-a USER |
Додає користувача до групи. Для додаткового користувача ця група є додатковою групою. |
-A USER,... |
Встановлює список користувачів з правами адміністратора. |
-d USER |
Видаляє користувача з групи. |
-M USER,... |
Встановлює список учасників групи. |
Команда gpasswd -M
діє як модифікація, а не доповнення.
# gpasswd GroupeA
New Password:
Re-enter new password:
Примітка
Окрім використання gpasswd -a
для додавання користувачів до групи, ви також можете використовувати usermod -G
або usermod -AG
, згадані раніше.
Команда id
¶
Команда id
відображає імена груп користувачів.
id USER
Приклад:
$ sudo id alain
uid=1000(alain) gid=1000(GroupA) groupes=1000(GroupA),1016(GroupP)
Команда newgrp
¶
Команда newgrp
може вибрати групу з додаткових груп користувача як нову тимчасову основну групу користувача. Команда newgrp
кожного разу, коли ви перемикаєте основну групу користувача, створює нову дочірню оболонку (дочірній процес). Будьте обережні! дочірня оболонка та вкладена оболонка відрізняються.
newgrp [secondarygroups]
Приклад:
$ sudo useradd test1
$ sudo passwd test1
$ sudo groupadd groupA ; sudo groupadd groupB
$ sudo usermod -G groupA,groupB test1
$ id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1),1001(groupA),1002(groupB)
$ echo $SHLVL ; echo $BASH_SUBSHELL
1
0
$ su - test1
$ touch a.txt
$ ll
-rw-rw-r-- 1 test1 test1 0 10月 7 14:02 a.txt
$ echo $SHLVL ; echo $BASH_SUBSHELL
1
0
# Generate a new child shell
$ newgrp groupA
$ touch b.txt
$ ll
-rw-rw-r-- 1 test1 test1 0 10月 7 14:02 a.txt
-rw-r--r-- 1 test1 groupA 0 10月 7 14:02 b.txt
$ echo $SHLVL ; echo $BASH_SUBSHELL
2
0
# You can exit the child shell using the `exit` command
$ exit
$ logout
$ whoami
root
Безпека¶
Команда passwd
¶
Команда passwd
керує паролем.
passwd [-d] [-l] [-S] [-u] [login]
Приклад:
sudo passwd -l albert
sudo passwd -n 60 -x 90 -w 80 -i 10 patrick
Опція | Опис |
---|---|
-d |
Назавжди видаляє пароль. Лише для root (uid=0). |
-l |
Назавжди блокує обліковий запис користувача. Лише для root (uid=0). |
-S |
Відображає стан рахунку. Лише для root (uid=0). |
-u |
Назавжди розблоковує обліковий запис користувача. Лише для root (uid=0). |
-e |
Термін дії пароля закінчується назавжди. Лише для root (uid=0). |
-n DAYS |
Визначає мінімальний термін дії пароля. Постійна зміна. Лише для root (uid=0). |
-x DAYS |
Визначає максимальний термін дії пароля. Постійна зміна. Лише для root (uid=0). |
-w DAYS |
Визначає час попередження до закінчення терміну дії. Постійна зміна. Лише для root (uid=0). |
-i DAYS |
Визначає затримку перед дезактивацією після закінчення терміну дії пароля. Постійна зміна. Лише для root (uid=0). |
Використовуйте password -l
, тобто додайте "!!" на початку поля пароля користувача, що відповідає /etc/shadow
.
Приклад:
- Ален змінює свій пароль:
[alain]$ passwd
- root змінює пароль Алана
sudo passwd alain
Примітка
Команда passwd
дозволяє користувачам змінити свій пароль (запитується старий пароль). Адміністратор може змінювати паролі всіх користувачів без обмежень.
Їм доведеться дотримуватися заходів безпеки.
Під час керування обліковими записами користувачів за допомогою сценарію оболонки встановлення пароля за умовчанням після створення користувача може бути корисним.
Це можна зробити, передавши пароль команді passwd
.
Приклад:
sudo echo "azerty,1" | passwd --stdin philippe
Важливо
Пароль вводиться відкритим текстом, passwd
шифрує його.
Команда chage
¶
Команда chage
призначена для зміни інформації про термін дії пароля користувача.
chage [-d date] [-E date] [-I days] [-l] [-m days] [-M days] [-W days] [login]
Приклад:
sudo chage -m 60 -M 90 -W 80 -I 10 alain
Опція | Опис |
---|---|
-I DAYS |
Визначає дні затримки перед деактивацією, термін дії пароля закінчився. Постійна зміна. |
-l |
Відображає деталі політики. |
-m DAYS |
Визначає мінімальний термін дії пароля. Постійна зміна. |
-M DAYS |
Визначає максимальний термін дії пароля. Постійна зміна. |
-d LAST_DAY |
Визначає кількість днів після останньої зміни пароля. Ви можете використовувати стиль часової позначки дня або стиль YY-MM-DD. Постійна зміна. |
-E EXPIRE_DATE |
Термін дії облікового запису. Ви можете використовувати стиль часової позначки дня або стиль YY-MM-DD. Постійна зміна. |
-W WARN_DAYS |
Час попередження до закінчення терміну дії. Постійна зміна. |
Приклади:
# Команда `chage` також пропонує інтерактивний режим.
$ sudo chage philippe
# Параметр `-d` змінює пароль під час входу.
$ sudo chage -d 0 philippe
Розширене управління¶
Файли конфігурації:
/etc/default/useradd
/etc/login.defs
/etc/skel
Примітка
Редагування файлу /etc/default/useradd
виконується командою useradd
.
Інші файли потрібно змінити за допомогою текстового редактора.
Файл /etc/default/useradd
¶
Цей файл містить налаштування даних за замовчуванням.
Порада
Якщо параметри не вказано під час створення користувача, система використовує значення за замовчуванням, визначені в /etc/default/useradd
.
Цей файл змінено командою useradd -D
(useradd -D
, введене без жодного іншого параметра, відображає вміст файлу /etc/default/useradd
).
Shell > grep -v ^# /etc/default/useradd
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Параметри | Коментар |
---|---|
GROUP |
Визначає стандартний GID основної групи. |
HOME |
Визначає шлях до каталогу верхнього рівня домашнього каталогу звичайного користувача. |
INACTIVE |
Кількість пільгових днів після закінчення терміну дії пароля. Відповідає 7-му полю файлу /etc/shadow . Значення -1 означає, що функцію пільгового періоду вимкнено. |
EXPIRE |
Термін дії облікового запису. Відповідає 8-му полю файлу /etc/shadow . |
SHELL |
Інтерпретатор команд. |
SKEL |
Скелетний каталог каталогу входу. |
CREATE_MAIL_SPOOL |
Створення поштової скриньки у /var/spool/mail/ . |
Якщо під час створення користувачів вам не потрібна первинна група з однаковою назвою, ви можете зробити це:
Shell > useradd -N test2
Shell > id test2
uid=1001(test2) gid=100(users) groups=100(users)
Файл /etc/login.defs
¶
# Comment line ignored
shell > cat /etc/login.defs
MAIL_DIR /var/spool/mail
UMASK 022
HOME_MODE 0700
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
UMASK 022
: це означає, що дозвіл на створення файлу становить 755 (rwxr-xr-x). Проте з міркувань безпеки GNU/Linux не має дозволу x для новостворених файлів. Це обмеження стосується root (uid=0) і звичайних користувачів (uid>=1000). Наприклад:
Shell > touch a.txt
Shell > ll
-rw-r--r-- 1 root root 0 Oct 8 13:00 a.txt
HOME_MODE 0700
: Дозволи домашнього каталогу звичайного користувача. Не працює для домашнього каталогу кореня.
Shell > ll -d /root
dr-xr-x---. 10 root root 4096 Oct 8 13:12 /root
Shell > ls -ld /home/test1/
drwx------ 2 test1 test1 4096 Oct 8 13:10 /home/test1/
USERGROUPS_ENAB так
: «Коли ви видаляєте користувача за допомогою команди userdel -r
, відповідна основна група також видаляється.» Чому? Це і є причиною.
Каталог /etc/skel
¶
Коли створюється користувач, створюється його домашній каталог і файли середовища. Ви можете розглядати файли в каталозі /etc/skel/
як шаблони файлів, необхідні для створення користувачів.
Ці файли автоматично копіюються з каталогу /etc/skel
.
.bash_logout
.bash_profile
.bashrc
Усі файли та каталоги, розміщені в цьому каталозі, будуть скопійовані до дерева користувачів після створення.
Зміна ідентифікації¶
Команда su
¶
Команда su
дозволяє змінити ідентифікатор підключеного користувача.
su [-] [-c command] [login]
Приклади:
$ sudo su - alain
[albert]$ su - root -c "passwd alain"
Опція | Опис |
---|---|
- |
Завантажує повне середовище користувача. |
-c команда |
Виконує команду під ідентифікацією користувача. |
Якщо логін не вказано, він буде root
.
Звичайним користувачам доведеться ввести пароль для нової ідентифікації.
Порада
Ви можете використати команду exit
/logout
, щоб вийти з користувачів, яких було переключено. Слід зазначити, що після зміни користувача не буде нової дочірньої оболонки
або підоболонки
, наприклад:
$ whoami
root
$ echo $SHLVL ; echo $BASH_SUBSHELL
1
0
$ su - test1
$ echo $SHLVL ; echo $BASH_SUBSHELL
1
0
Увага, будь ласка! su
і su -
відрізняються, як показано в наступному прикладі:
$ whoami
test1
$ su root
$ pwd
/home/test1
$ env
...
USER=test1
PWD=/home/test1
HOME=/root
MAIL=/var/spool/mail/test1
LOGNAME=test1
...
$ whoami
test1
$ su - root
$ pwd
/root
$ env
...
USER=root
PWD=/root
HOME=/root
MAIL=/var/spool/mail/root
LOGNAME=root
...
Отже, якщо ви захочете змінити користувача, не забудьте не втратити -
. Оскільки необхідні файли змінних середовища не завантажуються, під час запуску деяких програм можуть виникнути проблеми.