Керування користувачами¶
У цьому розділі ви дізнаєтесь, як керувати користувачами.
Цілі: у цьому розділі майбутні адміністратори 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
Важливо
Ви завжди повинні використовувати команди адміністрування, а не редагувати файли вручну.
Управління групою¶
Змінені файли, додані рядки:
/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
видалить групу без додаткових підказки.
Приклади:
Shell > useradd testa
Shell > id testa
uid=1000(testa) gid=1000(testa) group=1000(testa)
Shell > groupdel testa
groupdel: cannot remove the primary group of user 'testa'
Shell > groupadd -g 1001 testb
Shell > usermod -G testb root
Shell > id root
uid=0(root) gid=0(root) group=0(root),1001(testb)
Shell > groupdel testb
Підказка
Коли ви видаляєте користувача за допомогою команди 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
і /etc/default/user/add
Shell > useradd test1
Shell > tail -n 1 /etc/passwd
test1:x:1000:1000::/home/test1:/bin/bash
Shell > tail -n 1 /etc/shadow
test1:!!:19253:0:99999:7
:::
Shell > 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: {} \;
Блокування та розблокування облікового запису користувача. Приклади:
Shell > usermod -L test1
Shell > grep test1 /etc/shadow
test1:!$6$n.hxglA.X5r7X0ex$qCXeTx.kQVmqsPLeuvIQnNidnSHvFiD7bQTxU7PLUCmBOcPNd5meqX6AEKSQvCLtbkdNCn.re2ixYxOeGWVFI0:19259:0:99999:7
:::
Shell > usermod -U test1
Різницю між параметрами -aG
і -G
можна пояснити за допомогою наступного приклада:
Shell > useradd test1
Shell > passwd test1
Shell > groupadd groupA ; groupadd groupB ; groupadd groupC ; groupadd groupD
Shell > id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1)
Shell > gpasswd -a test1 groupA
Shell > id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1),1002(groupA)
Shell > usermod -G groupB,groupC test1
Shell > id test1
uid=1000(test1) gid=1000(test1) gorups=1000(test1),1003(groupB),1004(groupC)
Shell > usermod -aG groupD 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» вказує позначку часу, яку потрібно заповнити.
Shell > date -d "1970-01-01 17718 days"
# Дата перетворюється на позначку часу, «2018-07-06» вказує на дату, яку потрібно заповнити.
Shell > 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: файл
Змінити власника і групу всіх файлів в каталозі
$ sudo chown -R albert:GroupA /dir1
команда chgrp
¶
Команда chgrp
дозволяє змінити власника групи файлу.
chgrp [-R] [-v] груповий файл
Приклад:
$ sudo chgrp group1 файл
Опція | Опис |
---|---|
-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
Новий пароль:
Повторно введіть новий пароль:
Примітка
Окрім використання gpasswd -a
для додавання користувачів до групи, ви також можете використовувати usermod -G
або usermod -AG
, згадані раніше.
Команда id
¶
Команда id
відображає назви груп користувача.
ідентифікатор користувача
Приклад:
$ sudo id alain
uid=1000(alain) gid=1000(GroupA) groupes=1000(GroupA),1016(GroupP)
Команда newgrp
¶
Команда newgrp
може вибрати групу з додаткових груп користувача як нову тимчасову основну групу користувача. Команда newgrp
кожного разу, коли ви змінюєте основну групу користувача, створює нову дочірню оболонку(дочірній процес). Будьте обережні! Дочірня оболонка та підоболонка відрізняються.
newgrp [secondarygroups]
Приклад:
Shell > useradd test1
Shell > passwd test1
Shell > groupadd groupA ; groupadd groupB
Shell > usermod -G groupA,groupB test1
Shell > id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1),1001(groupA),1002(groupB)
Shell > echo $SHLVL ; echo $BASH_SUBSHELL
1
0
Shell > su - test1
Shell > touch a.txt
Shell > ll
-rw-rw-r-- 1 test1 test1 0 10月 7 14:02 a.txt
Shell > echo $SHLVL ; echo $BASH_SUBSHELL
1
0
# Generate a new child shell
Shell > newgrp groupA
Shell > touch b.txt
Shell > 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
Shell > echo $SHLVL ; echo $BASH_SUBSHELL
2
0
# You can exit the child shell using the `exit` command
Shell > exit
Shell > logout
Shell > whoami
root
Безпека¶
Команда passwd
¶
Команда passwd
використовується для керування паролем.
passwd [-d] [-l] [-S] [-u] [login]
Приклади:
Shell > passwd -l albert
Shell > 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
доступна користувачам для зміни пароля (запитується старий пароль). Адміністратор може змінити паролі всіх користувачів без обмежень.
Їм доведеться дотримуватися обмежень безпеки.
При управлінні обліковими записами користувачів shell може бути корисно встановити типовий пароль після створення користувача.
Це можна зробити, передавши пароль команді 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 hage
# Параметр `-d` примусово змінює пароль під час входу.
$ sudo chage -d 0 philippe
Розширене управління¶
Файли конфігурації:
/etc/default/useradd
/etc/login.defs
/etc/skel
Примітка
Редагування файлу /etc/default/user/useradd
виконується за допомогою команди useradd
.
Інші файли мають бути змінені в текстовому редакторі.
Файл /etc/default/useradd
¶
Цей файл містить налаштування даних за замовчуванням.
Порада
Під час створення користувача, якщо не зазначені варіанти, система використовує значення за замовчуванням в `/etc/default/user/user/.
Цей файл змінено командою useradd -D
(useradd -D
введений без будь-якої іншої опції відображає вміст файлу /etc/default/useradd
.
Shell > сір -v ^# /etc/default/user/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-xr-xxxx). Однак з міркувань безпеки GNU/Linux не має дозволу x для новостворених файлів, це обмеження застосовується до root (uid=0) і звичайних користувачів (uid& #062;=1000). Наприклад:
Shell > touch a.txt
Shell > ll
-rw-r--r-- 1 root 0 Oct 8 13:00 a.txt
HOME_MODE 0700
: Права звичайної домашньої теки користувача. Не працює для домашнього каталогу root.
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 yes
: «Коли ви видаляєте користувача за допомогою команди 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
, щоб вийти з користувачів, яких було переключено. Слід зазначити, що після зміни користувача не буде нової дочірньої оболонки
або підоболонки
, наприклад:
Ll > echo $SHLVL ; echo $BASH_SUBSHELL
1
0
Shell > su - test1
Shell > echo $SHLVL ; echo $BASH_SUBSHELL
1
0
Увага, будь ласка! su
і su -
відрізняються, як показано в наступному прикладі:
Shell > whoami
test1
Shell > su root
Shell > pwd
/home/test1
Shell > env
...
USER=test1
PWD=/home/test1
HOME=/root
MAIL=/var/spool/mail/test1
LOGNAME=test1
...
Shell > whoami
test1
Shell > su - root
Shell > pwd
/root
Shell > env
...
USER=root
PWD=/root
HOME=/root
MAIL=/var/spool/mail/root
LOGNAME=root
...
Отже, якщо ви хочете змінити користувача, не забудьте не втратити -
. Оскільки необхідні файли змінних середовища не завантажуються, під час запуску деяких програм можуть виникнути проблеми.