Как изменять учетные записи
Утилиты
Для редактирования учетных записей существуют специальные команды. Они входят в состав пакета passwd
и не нуждаются в установке.
Руководство:
man usermod
, man groupmod
, man passwd
, man gpasswd
, man chage
, man chfn
, man chsh
.
Справка по утилитам:
usermod, groupmod, passwd, gpasswd, chage, chfn, chsh.
Права на изменение учетных записей
Большая часть примеров и инструкций этом разделе подразумевает наличие прав на редактирование системных файлов.
Права можно получить одним из способов:
- запускать команды под
sudo
(для этого нужно иметь права суперпользователя); - авторизоваться под учетной записью root (не рекомендуется).
Для лаконичности необходимость получить эта права обозначена в инструкциях фразой «Авторизуйтесь в системе под учетной записью c правами sudo
».
Как изменить пароль
Как изменить свой пароль
- Авторизуйтесь в системе под своей учетной записью.
- Введите команду
passwd
. - Введите новый пароль.
- Повторите пароль.
Пример
Задача: пользователю trex необходимо сменить свой пароль пользователя.
trex@selectos:~ passwd
New password:
Retype new password:
passwd: password updated successfully
Как изменить пароль другого пользователя
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду
passwd <пользователь>
. - Введите новый пароль.
- Повторите пароль.
Пример
Задача: администратору необходимо сменить пароль пользователя trex.
$ sudo passwd trex
New password:
Retype new password:
passwd: password updated successfully
Как обязать пользователя сменить пароль
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите одну из команд:
сhage -d 0 <пользователь>
passwd -e <пользователь>
.
Пример
Задача: обязать пользователя trex при следующей авторизации в системе сменить пароль прежде, чем он продолжит работать.
$ sudo сhage -d 0 trex
# или
$ sudo passwd -e trex
При следующей авторизации в системе trex будет вынужден сменить пароль с учетом требований к формату пароля. Вот что он увидит после приветственного экрана:
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for trex.
Current password:
New password:
Retype new password:
passwd: password updated successfully
После этого сеанс будет автоматически завершен и для продолжения работы trex должен будет осуществить вход в систему повторно — с новым паролем.
Как изменить свойства пароля
Команда chage
изменяет свойства пароля, которые содержатся в /etc/shadow
.
Вы можете вводить сроки и даты в формате YYYY-MM-DD
при использовании этой команды.
Как посмотреть свойства пароля
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду
сhage -l <пользователь>
.
Примечание: пользователь без прав администратора может посмотреть только информацию о собственном пароле.
Примеры
Задача: администратору нужно посмотреть свойства пароля пользователя trex.
$ sudo chage -l trex
Last password change : May 31, 2025
Password expires : never
Password inactive : never
Account expires : never
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
Задача: пользователю trex нужно посмотреть свойства своего пароля.
rex@selectos:~$ chage -l trex
Last password change : May 31, 2025
Password expires : never
Password inactive : never
Account expires : never
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
Невыполнимая задача: пользователь trex хочет посмотреть свойства чужого пароля.
trex@selectos:~$ chage -l root
chage: Permission denied.
Как установить дату окончания действия аккаунта
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите одну из команд:
chage -E <YYYY-MM-DD> <пользователь>
;usermod -e <YYYY-MM-DD> <пользователь>
.
Пример
Задача: установить срок действия аккаунта для treх до 1 июня 2028 года.
$ sudo chage -E 2028-06-01 trex
# или
$ sudo usermod -e 2028-06-01 trex
Результат отображается в поле Account expires
.
$ sudo chage -l trex
Last password change : May 31, 2025
Password expires : never
Password inactive : never
Account expires : Jun 01, 2028
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
Это значит, что 1 июня 2028 года trex больше не сможет осуществить вход в систему — аккаунт будет заблокирован.
Как изменить периодичность смены пароля
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду:
chage -m <количество дней> <пользователь>
для установки минимального периода;chage -M <количество дней> <пользователь>
для установки максимального периода.
Примечание: опции можно комбинировать, как в примере.
Пример
Задача: установить период смены пароля для treх не чаще, чем раз в месяц, но не реже, чем раз в год.
$ sudo chage -m 30 -M 365 trex
Результат отображается в полях:
Minimum number of days between password change
,Maximum number of days between password change
,Password expires
.
Значение Password expires
автоматически рассчитано как Last password change + 365
.
$ sudo chage -l trex
Last password change : May 31, 2025
Password expires : May 31, 2026
Password inactive : never
Account expires : Jun 01, 2028
Minimum number of days between password change : 30
Maximum number of days between password change : 365
Number of days of warning before password expires : 7
Как изменить срок существования аккаунта после аннулирования пароля
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите одну из команд:
сhage -I <количество дней> <пользователь>
;usermod -f <количество дней> <пользователь>
.
Пример
Задача: установить срок существования аккаунта treх после аннулирования пароля в 14 дней.
$ sudo chage -I 14 trex
# или
$ sudo usermod -f 14 trex
Результат отображается в поле Password inactive
.
Значение автоматически рассчитано как Password expires + 14
.
$ sudo chage -l trex
Last password change : May 31, 2025
Password expires : May 31, 2026
Password inactive : Jun 14, 2026
Account expires : Jun 01, 2028
Minimum number of days between password change : 30
Maximum number of days between password change : 365
Number of days of warning before password expires : 7
Эти настройки означают, что trex должен сменить пароль в период с 30 июня 2025 года по 31 мая 2026 года. За неделю до окончания срока он получит предупреждение о необходимости сменить пароль.
Если trex не сменит пароль к 31 Мая 2026 года, то в течение двух недель он будет иметь возможность войти в систему, изменить пароль и продолжить работу. Он не сможет работать со старым паролем в течение этих двух недель.
Если trex не зайдет в систему и не сменит пароль до 14 июня 2026 года, его аккаунт будет заблокирован.
Как изменить логин пользователя
Перед сменой логина убедитесь, что пользователь не использует систему в данный момент.
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду:
usermod -l <новый логин> <пользователь>
.
Пример
Задача: изменить логин пользователя tirex на trex.
$ sudo usermod -l trex tirex
Результат можно проверить командой getent passwd <пользователь>
.
$ getent passwd trex
trex:x:1000:1000:Mr.Trex,,,:/home/trex:/bin/bash
Полное имя изменено с Tyrannosaurus Rex на Mr.Trex.
Как изменить описание пользователя
Команда chfn
позволяет изменить опциональные поля, которые описывают пользователя: полное имя, номер телефона, номер кабинета и т.п.
Опции команды изменяют конкретное поле описания. Полный перечень опций в справке: chfn.
Как изменить полное имя пользователя
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду:
chfn -f <пользователь>
.
Пример
Задача: изменить полное имя пользователя trex на Mr. Trex.
Предварительный шаг для наглядности: просмотр актуального имени командой getent passwd <пользователь>
.
$ sudo getent passwd trex
trex:x:1000:1000:Tyrannosaurus Rex,,,:/home/trex:/bin/bash
Для изменения полного имени в аргументе команды нужно указать логин пользователя.
$ sudo chfn -f Mr.Trex trex
Результат можно проверить аналогично предварительному шагу.
$ getent passwd trex
trex:x:1000:1000:Mr.Trex,,,:/home/trex:/bin/bash
Полное имя изменено с Tyrannosaurus Rex на Mr.Trex.
Примечание: при использовании команды с опциями команда ожидает входные данные без пробелов. Это создает проблему, например, с полным именем.
Проблему можно решить, вызвав команду chfn <пользователь>
без опций: тогда интерфейс предложит ввести все необходимые поля описания пользователя в интерктивном режиме — как при создании. По enter
можно пропускать заполнение полей.
Пример
Задача: изменить полное имя пользователя trex на Tyrannosaurus Rex.
$ sudo chfn trex
# Интерактивный режим
Changing the user information for trex
Enter the new value, or press ENTER for the default
Full Name [Mr.Trex]: Tyrannosaurus Rex
Room Number []:
Work Phone []:
Home Phone []:
Other []:
# Проверка результата
root@selectos:~# getent passwd trex
trex:x:1000:1000:Tyrannosaurus Rex,,,:/home/trex:/bin/bash
Полное имя изменено с Tyrannosaurus Rex на Mr.Trex.
Как изменить группы пользователя
Как изменить основную группу пользователя
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду
usermod -g <группа> <пользователь>
.
Пример
Задача: сделать группу dinos основной для пользователя treх.
$ sudo usermod -g dinos trex
Результат можно проверить командой groups <пользователь>
.
$ groups trex
trex : dinos users
Группа dinos указана первой — это значит, что она стала основной группой пользователя treх.
Как изменить дополнительные группы пользователя
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду
usermod -G <группа1>,<группа2>,..,<группаN> <пользователь>
.
Пример
Задача: добавить пользователя treх в группы pinguins и admins.
Текущие группы пользователя можно проверить командой groups <пользователь>
.
# Предварительный шаг: проверка текущих групп
$ groups trex
trex : dinos users
# Изначально "treх" состоит только в одной дополнительной группе - "users".
# Назначение нового списка дополнительных групп
$ sudo usermod -G pinguins,admins trex
# Проверка результата
$ groups trex
trex : dinos pinguins admins
Список дополнительных групп для treх заменен новым списком.
Как временно получить права группы
- Введите команду
newgr <группа1>
. - Введите пароль группы, если он установлен, и вы не состоите в этой группе.
- Для возвращения к основной группе воспользуйтесь командой еще раз:
newgr <основная группа>
.
Пример
Задача: пользователю treх необходимо создать файл IloveTrex.txt
от имени группы pinguins.
trex@selectos:~$ newgrp pinguins # получение прав чужой группе
Password: # ввод пароля, потому что он установлен у группы, в которой "trex" не состоит
trex@selectos:~$ touch IloveTrex.txt # создание файла от имени чужой группы
Результат можно проверить по свойствам созданного файла.
trex@selectos:~$ ls -l Ilovetrex.txt
-rw-r--r-- 1 trex pinguins 0 Jun 3 06:01 IloveTrex.txt
Для возврата к основной группе и проверки результата можно воспользоваться аналогичной последовательностью действий.
trex@selectos:~$ newgrp dinos # возврат к своей группе
trex@selectos:~$ touch IloveTux.txt # создание файла от имени своей группы
trex@selectos:~$ ls -l IloveTux.txt # проверка результата
-rw-r--r-- 1 trex dinos 0 Jun 3 06:03 IloveTux.txt
Как изменить свойства группы
Как изменить пароль группы
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите одну из командy
gpasswd <группа>
.
Пример
Задача: установить пароль для группы pinguins.
$ sudo gpasswd pinguins
Changing the password for group pinguins
New Password:
Re-enter new password:
Для проверки результата можно получить права группы от имени пользователя, не состоящего в группе, — см. пример как временно получить права группы.
Как переименовать группу
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду
groupmod -n <новое имя> <группа>
.
Пример
Задача: переименовать группу dinos в dinosaurs.
Предварительный шаг: проверить и запомнить идентификатор группы, чтобы потом можно было отследить результат.
$ getent group dinosaurs
dinosaurs:x:1000:trex
Идентификатор группы 1000.
$ sudo groupmod -n dinosaurs dinos
Результат можно проверить командой getent group <новое имя>
.
$ getent group dinosaurs
dinosaurs:x:1000:trex
В выводе команды видно, что теперь группа с id=1000 назвается dinosaurs.
Как изменить участников группы
- Авторизуйтесь в системе под учетной записью с правами sudo.
- Введите команду:
groupmod -U <пользователь 1>,<пользователь N> <группа>
— для замены списка участниковgroupmod -a -U <пользователь 1>,<пользователь N> <группа>
— для дополнения списка участников
Пример
Задача: добавить в группу admins участников tux и trex, заменив предыдущих участников.
$ sudo groupmod -U tux,trex admins
Результат можно проверить командой getent group <группа>
.
$ getent group admins
admins:x:1004:tux,trex
Пользователи tux и trex заменили участников группы admins.
Задача: добавить в группу admins еще одного участника — bot.
$ sudo groupmod -a -U bot admins
Результат можно проверить командой getent group <группа>
.
$ getent group admins
admins:x:1004:tux,trex,bot
Пользователь bot добавлен в группу admins.