Перейти к основному содержимому
Как изменять учетные записи

Как изменять учетные записи

Утилиты

Для редактирования учетных записей существуют специальные команды. Они входят в состав пакета 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».

Как изменить пароль

примечание

Как изменить свой пароль

  1. Авторизуйтесь в системе под своей учетной записью.
  2. Введите команду passwd.
  3. Введите новый пароль.
  4. Повторите пароль.
Пример

Задача: пользователю trex необходимо сменить свой пароль пользователя.

trex@selectos:~ passwd

New password:
Retype new password:
passwd: password updated successfully
примечание

Как изменить пароль другого пользователя

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду passwd <пользователь>.
  3. Введите новый пароль.
  4. Повторите пароль.
Пример

Задача: администратору необходимо сменить пароль пользователя trex.

$ sudo passwd trex

New password:
Retype new password:
passwd: password updated successfully
примечание

Как обязать пользователя сменить пароль

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите одну из команд:
  • с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 при использовании этой команды.

примечание

Как посмотреть свойства пароля

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду с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.
примечание

Как установить дату окончания действия аккаунта

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите одну из команд:
  • 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 больше не сможет осуществить вход в систему — аккаунт будет заблокирован.

примечание

Как изменить периодичность смены пароля

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду:
  • 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
примечание

Как изменить срок существования аккаунта после аннулирования пароля

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите одну из команд:
  • с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 года, его аккаунт будет заблокирован.

Как изменить логин пользователя

примечание

Перед сменой логина убедитесь, что пользователь не использует систему в данный момент.

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду: 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.

примечание

Как изменить полное имя пользователя

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду: 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.

Как изменить группы пользователя

примечание

Как изменить основную группу пользователя

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду usermod -g <группа> <пользователь>.
Пример

Задача: сделать группу dinos основной для пользователя treх.

$ sudo usermod -g dinos trex

Результат можно проверить командой groups <пользователь>.

$ groups trex
trex : dinos users

Группа dinos указана первой — это значит, что она стала основной группой пользователя treх.

примечание

Как изменить дополнительные группы пользователя

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду 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х заменен новым списком.

примечание

Как временно получить права группы

  1. Введите команду newgr <группа1>.
  2. Введите пароль группы, если он установлен, и вы не состоите в этой группе.
  3. Для возвращения к основной группе воспользуйтесь командой еще раз:

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

Как изменить свойства группы

примечание

Как изменить пароль группы

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите одну из командy gpasswd <группа>.
Пример

Задача: установить пароль для группы pinguins.

$ sudo gpasswd pinguins
Changing the password for group pinguins
New Password:
Re-enter new password:

Для проверки результата можно получить права группы от имени пользователя, не состоящего в группе, — см. пример как временно получить права группы.

примечание

Как переименовать группу

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду 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.

примечание

Как изменить участников группы

  1. Авторизуйтесь в системе под учетной записью с правами sudo.
  2. Введите команду:
  • 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.