Команда usermod в Linux с примерами
В моей предыдущей статье я объяснил, как создать нового пользователя в Linux. Сегодня вы узнаете, как изменить существующую учетную запись пользователя в Linux с помощью команды usermod.
usermod
означает «Модификация пользователя».
Как администратор Linux вы много раз получаете запросы на изменения существующего пользователя, такие как изменение основной группы пользователя, добавление пользователя в одну / несколько дополнительных групп, изменение имени входа, блокировка или разблокировка учетной записи, изменение домашнего каталога, изменить UID или GID и так далее.
Вы должны запустить команду usermod как корень user, потому что при запуске этой команды он вносит изменения в следующие важные файлы конфигурации, владельцем которых является root.
- / etc / passwd
- / etc / shadow
- / etc / gshadow
- / etc / group
Ключевые особенности команды usermod:
- Установить новый идентификатор пользователя (UID) для учетной записи пользователя
- Можно установить новую основную группу для существующей учетной записи пользователя
- Заблокировать и разблокировать аккаунт
- Добавить пользователя в одну / несколько вторичных / дополнительных групп
- Изменить имя для входа в существующую учетную запись пользователя
- Установить собственные комментарии
- Изменить домашний каталог существующей учетной записи пользователя
- Переместить содержимое текущего домашнего каталога в новый домашний каталог
- Установить новую оболочку входа для существующей учетной записи пользователя
- Добавить пользователя в новые дополнительные группы, не удаляя пользователя из других групп.
- Установить дату истечения срока действия учетной записи пользователя
- Установите незашифрованный пароль для учетной записи пользователя
Прежде всего, давайте сосредоточимся на некоторых из наиболее важных опций, которые мы можем использовать с usermod
.
Параметры | Объяснение |
---|---|
-как это | Установить собственный комментарий для учетной записи пользователя |
-d –home | Новый домашний каталог для учетной записи пользователя |
-e, –expiredate | установить дату истечения срока действия учетной записи |
-g, –gid | Принудительно использовать GROUP как новую основную группу |
-G, –groups | Новый список дополнительных ГРУПП |
-a, –append | Добавить пользователя в дополнительные ГРУППЫ, указанные параметром -G, не удаляя пользователя из других групп. |
-m, –move-home | Переместите содержимое домашнего каталога в новое место (используйте только с -d) |
-p, –password | Установить незашифрованный для учетной записи пользователя |
-s, –shell | Новая оболочка входа для учетной записи пользователя |
-u, –uid | Новый UID для учетной записи пользователя |
-l, –login | Новое значение логина |
-L, –lock | Заблокировать учетную запись пользователя |
-U, –unlock | Разблокировать учетную запись пользователя |
–помощь | Отобразить страницу справки по команде usermod. |
Вы должны следовать синтаксису, приведенному ниже, чтобы использовать usermod
команда.
usermod [options] LOGIN
1. Измените домашний каталог пользователя.
Команда useradd обращается к двум файлам для создания нового пользователя, и это /etc/login.defs
а также /etc/default/useradd
.
Эти файлы содержат некоторые настройки пользователя по умолчанию, такие как домашний каталог пользователя, оболочка входа по умолчанию и т. Д.
Поэтому в Linux по умолчанию домашний каталог нового пользователя создается внутри /home
.
В этом примере, как вы можете видеть, домашний каталог пользователя с именем Аюш является /home/ayush
.
# cat /etc/passwd | grep ayush
ayush:x:1110:1108:Ayush Balamukunda Sahu:/home/ayush:/bin/sh
Чтобы установить новый домашний каталог для пользователя, передайте -d
вариант для usermod
команда.
В этом примере я меняю домашний каталог пользователя с /home/ayush
к /accounts/ayush
.
# usermod -d /accounts/ayush ayush
Введите следующую команду, чтобы проверить, установлен ли новый каталог.
# cat /etc/passwd | grep ayush
ayush:x:1110:1108:Ayush Balamukunda Sahu:/accounts/ayush:/bin/sh
2. Переместите содержимое домашнего каталога пользователя.
Приведенная выше команда изменит только домашний каталог пользователя, но не будет передавать содержимое пользователя.
Вы можете изменить домашний каталог с содержимым пользователя, используя -m
вариант с usermod
.
как видите, домашний каталог пользователя с именем Аюш является /home/ayush
.
# cat /etc/passwd | grep ayush
ayush:x:1120:1006:Ayush Balamukunda Sahu:/home/ayush:/bin/bash
Следующая команда переместит домашний каталог в /accounts/ayush
с контентом пользователя.
# usermod -d /accounts/ayush -m ayush
3. Установите дату истечения срока действия учетной записи.
Чтобы изменить дату истечения срока действия учетной записи существующего пользователя, используйте -e
вариант с помощью команды usermod.
Здесь, в этом примере, дата истечения срока действия текущей учетной записи пользователя с именем Аюш является 01 янв.2021 г..
# chage -l ayush
Last password change : Feb 04, 2021
Password expires : never
Password inactive : never
Account expires : Jan 01, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Чтобы изменить срок годности, передайте -e
возможность usermod
. Формат даты, который вам нужно соблюдать, это ГГГГ-ММ-ДД.
В этом примере я меняю дату истечения срока действия учетной записи на 4 февраля 2021 г..
# usermod -e 2021-02-04 ayush
Как видите, срок действия учетной записи изменился.
# chage -l ayush
Last password change : Feb 04, 2021
Password expires : never
Password inactive : never
Account expires : Feb 04, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
4. Измените оболочку входа пользователя по умолчанию.
Оболочка входа в систему Linux по умолчанию может различаться в зависимости от дистрибутива.
Прямо сейчас я использую RHEL 8, в котором оболочка входа пользователя по умолчанию /bin/sh
.
Как вы можете видеть, оболочка входа по умолчанию для пользователя с именем Аюш является /bin/sh
.
# cat /etc/passwd | grep ayush
ayush:x:1110:1108:Ayush Balamukunda Sahu:/accounts/ayush:/bin/sh
Чтобы изменить оболочку входа по умолчанию, передайте -s
вариант для usermod
команда. В этом примере я меняю оболочку входа в систему с /bin/sh
к /bin/bash
.
# usermod -s /bin/bash ayush
Введите следующую команду, чтобы проверить результат.
# cat /etc/passwd | grep ayush
ayush:x:1110:1108:Ayush Balamukunda Sahu:/accounts/ayush:/bin/bash
5. Установите собственный комментарий для учетной записи пользователя.
Чтобы установить собственный комментарий для учетной записи пользователя, используйте -c
вариант с usermod
команда.
# usermod -c "Ayush Balamukunda Sahu" ayush
Введите следующую команду, чтобы проверить результат.
# cat /etc/passwd | grep ayush
ayush:x:1108:1108:Ayush Balamukunda Sahu:/home/ayush:/bin/sh
6. Заблокируйте пароль пользователя.
Чтобы заблокировать пароль пользователя, используйте -L
вариант с usermod
.
В этом примере я блокирую пароль для пользователя с именем Аюш.
# usermod -L ayush
Введите следующую команду, чтобы проверить, заблокирован ли пароль пользователя.
Если вы заметили, у зашифрованного пароля есть восклицательный знак (!
) перед ним, что подтверждает, что пароль пользователя заблокирован.
# cat /etc/shadow | grep ayush
ayush:!$6$CWccMhl1UHqKQ5zX$Uthk2h7.l1zma7irpFp3SoAhDnaZ5/doa1uHornq8fnEcMNiTBG03PkTAZudwXPvQt1RBjpxMnAuTuw.Tanon0:18662:0:99999:7:::

Но такой замок позволит переключение на пользователя или аутентификация на основе ключей для пользователя.
Введите следующую команду для полной блокировки.
# usermod -L -e 1 ayush
7. Разблокируйте пароль пользователя.
Чтобы разблокировать пароль пользователя, используйте -U
вариант с usermod
команда.
Эта команда разблокирует пароль пользователя, удалив восклицательный знак (!
) перед зашифрованным паролем.
# usermod -U ayush
8. Установите незашифрованный пароль для учетной записи пользователя.
Выполните следующую команду, чтобы установить незашифрованный пароль для пользователя.
Здесь я устанавливаю незашифрованный пароль для пользователя с именем Аюш.
# usermod -p [email protected] ayush
Введите следующую команду, чтобы проверить результат.
# cat /etc/shadow | grep ayush
ayush:[email protected]:18662:0:99999:7:::
9. Измените основную группу пользователя.
Чтобы изменить основную группу (GID) существующего пользователя, передайте -g
опция для команды usermod.
В настоящее время идентификатор основной группы пользователя с именем ayush
является 1108
.
Примечание: Вы можете использовать команда id для печати информации о пользователе и группе для указанного пользователя ИЛИ для текущего пользователя.
# id ayush
uid=1110(ayush) gid=1108(ayush) groups=1108(ayush)
Следующая команда изменит идентификатор основной группы пользователя (GID
) из 1108
к 1006
.
Примечание: Вы также можете ввести идентификатор группы вместо имени группы.
# usermod -g group1 ayush
Выполните следующую команду, чтобы проверить, изменился ли идентификатор группы.
# id ayush
uid=1110(ayush) gid=1006(group1) groups=1006(group1)
10. Добавление пользователя в несколько групп.
Чтобы добавить пользователя в несколько вторичных / дополнительных групп, пройдите -G
вариант для usermod
команда.
В настоящее время пользователь с именем Аюш не является членом какой-либо вторичной группы.
# id ayush
uid=1110(ayush) gid=1006(group1) groups=1006(group1)
Следующая команда добавит пользователя в группы с именем группа2, группа3, группа4, группа5.
# usermod -G group2,group3,group4,group5 ayush
Введите следующую команду, чтобы проверить результат.
# id ayush
uid=1110(ayush) gid=1006(group1) groups=1006(group1),1007(group2),1008(group3),1009(group4),1010(group5)
Другой вариант поставляется с usermod
команда, которая помогает добавлять пользователей в дополнительные группы, и эта опция -a
.
Тогда в чем разница между вариантом -G
а также -a
.
Попробуем разобраться с помощью Сценария.
Прямо сейчас у меня есть пользователь с именем Аюш кто является членом вторичных групп, названных группа2, группа3, группа4, группа5.
# id ayush
uid=1110(ayush) gid=1006(group1) groups=1006(group1),1007(group2),1008(group3),1009(group4),1010(group5)
Теперь я хочу сделать этого пользователя членом группа6 не выходя из существующей группы.
Возможно ли это с помощью опции -G
. Давайте посмотрим.
# usermod -G group6 ayush
Результат:
Как вы видете, Аюш в настоящее время является членом группа6 и был удален из всех остальных групп.
# id ayush
uid=1120(ayush) gid=1006(group1) groups=1006(group1),1109(group6)
Мы должны использовать оба варианта -a
а также -G
вместе, чтобы выполнить задание.
# usermod -aG group6 ayush
Результат:
# id ayush
uid=1120(ayush) gid=1006(group1) groups=1006(group1),1007(group2),1008(group3),1009(group4),1010(group5),1109(group6)
11. Измените логин пользователя.
Логин пользователя можно изменить с помощью команды usermod.
Для этого используйте -l
вариант с usermod
.
В этом примере я меняю логин пользователя с именем Аюш.
# id ayush
uid=1108(ayush) gid=1108(ayush) groups=1108(ayush)
Следующая команда изменит существующее имя для входа, т.е. Аюш к сисадмин.
# usermod -l sysadmin ayush
Поскольку мы изменили имя пользователя для входа в систему, давайте попробуем получить доступ к сведениям о старом имени через id
команда.
# id ayush
id: ‘ayush’: no such user
И как и ожидалось id
команде не удалось найти ни одного пользователя с именем Аюш но доступ к пользовательской информации можно получить под новым именем.
# id sysadmin
uid=1108(sysadmin) gid=1108(ayush) groups=1108(ayush)
12. Установите новый идентификатор пользователя (UID) для учетной записи пользователя.
Чтобы установить новый идентификатор пользователя (UID) для учетной записи пользователя, используйте -u
вариант с usermod
команда.
# id ayush
uid=1110(ayush) gid=1006(group1) groups=1006(group1),1007(group2),1008(group3),1009(group4),1010(group5)
Следующая команда изменит существующий идентификатор пользователя (UID), т.е. 1110 к 1120.
# usermod -u 1120 ayush
Введите следующую команду, чтобы проверить результат.
# id ayush
uid=1120(ayush) gid=1006(group1) groups=1006(group1),1007(group2),1008(group3),1009(group4),1010(group5)
13. Справка / доступ к странице руководства
Используйте следующие команды для доступа к странице руководства / странице справки usermod
команда.
# man usermod
# man --help
Вы можете посетить следующие веб-сайты, чтобы получить дополнительную информацию о usermod
.
Заключение
Надеюсь, вы узнали что-то из этой статьи и, возможно, обнаружили, что usermod
это очень важная команда в Linux.
Я изо всех сил старался включить в это руководство все функции команды usermod.
Теперь хотелось бы услышать ваши мысли.
Было ли это руководство полезно для вас?
Или, может быть, у вас есть вопросы.
Разве я не включил в это руководство какую-либо команду?
Оставьте комментарий ниже.