Как изменить доступ в систему
Утилиты
Для изменения доступа в систему существуют специальные команды.
Руководство: man usermod
, man passwd
, man chage
, man chsh
.
Справка по утилитам: usermod, passwd, chage, chsh.
Права на управление доступом
Управление доступом в систему требует наличия прав на редактирование системных файлов.
Права можно получить одним из способов:
- запускать команды под
sudo
(для этого нужно иметь права суперпользователя); - авторизоваться под учетной записью root (не рекомендуется).
В инструкциях раздела будут приведены примеры с использованием рекомендуемого подхода — через sudo
.
Как запретить доступ пользователю
Есть несколько способов остановить доступ пользователя в систему:
-
истечение срока действия учетной записи;
-
блокирование учетной записи;
-
изменение оболочки пользователя.
Ниже инструкции для каждого способа с подсказками, как вернуть доступ.
Истечение срока действия учетной записи
Введите одну из команд:
сhage -E 1 <пользователь>
;usermod -e 1 <пользователь>
.
Примечание: будет запрещен вход и по паролю, и по ключу SSH из-за истечения срока действия учетной записи.
Примеры
Задача: запретить пользователю trex вход по паролю и по ключу SSH.
$ sudo chage -E 1 trex
# или
$ sudo usermod -e 1 trex
Можно проверить результат попыткой войти в аккаунт.
selectos login: trex
Password:
Your account has expired; please contact your system administrator.
Authentication failure
Чтобы вернуть доступ, возможны варианты:
сhage -E -1 <пользователь>
— сделать срок действия аккаунта бесконечным;usermod -e -1 <пользователь>
— сделать срок действия аккаунта бесконечным;сhage -E <YYYY-MM-DD> <пользователь>
— установить новый срок действия аккаунта;usermod -e <YYYY-MM-DD> <пользователь>
— установить новый срок действия аккаунта.
Примеры
Задача: вернуть пользователю trex дос туп по паролю и по ключу SSH.
Бессрочный аккаунт
$ sudo chage -E -1 trex
# или
$ sudo usermod -e -1 trex
Можно проверить результат командой change -l <пользователь>
.
$ sudo chage -E -1 trex
$ sudo chage -l trex
Last password change : May 31, 2025
Password expires : May 31, 2026
Password inactive : Jun 14, 2026
Account expires : never # срок действия аккаунта стал бесконечным
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 chage -E 2028-06-01 trex
# или
$ sudo usermod -e 2028-06-01 trex
Можно проверить результат командой change -l <пользователь>
.
$ 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
Блокирование учетной записи
Введите одну из команд:
passwd -l <пользователь>
;usermod -L <пользователь>
.
Примечание: будет запрещен вход только по паролю. Пользователь может иметь актуальный доступ по SSH-ключу.
Примеры
Задача: запретить пользователю trex вход по паролю.
$ sudo passwd -l trex
# или
$ sudo usermod -L trex
Проверить результат можно командой passwd -S <пользователь>
. Возможные статусы:
L
— пароль недействителен,P
— пароль дейтствителен,NP
— пароль отсутствует.
$ sudo passwd -S trex
trex L 2025-05-31 30 365 7 14
Статус идет сразу после логина. Пароль недействителен.
Можно проверить блокировку аккаунта попыткой входа с помощью команды login
.
$ login
selectos login: trex
Password:
Login incorrect
selectos login:
Чтобы вернуть доступ, введите одну из команд:
passwd -u <пользователь>
;usermod -U <пользователь>
.
Примеры
Задача: разрешить пользователю trex вход по паролю.
$ sudo passwd -u trex
# или
$ sudo usermod -U trex
Проверить результат можно командой passwd -S <пользователь>
. Возможные статусы:
L
— пароль недействителен,P
— пароль дейтствителен,NP
— пароль отсутствует.
$ sudo passwd -S trex
trex P 2025-05-31 30 365 7 14
Статус идет сразу после логина. Пароль действителен.
Изменение оболочки
Деактивировать учётную запись можно путём изменения оболочки пользователя по умолчанию одной из команд:
chsh -s <оболочка> <пользователь>
;usermod -s <оболочка> <пользователь>
.
Возможные оболочки:
/usr/sbin/nologin
— пользователь получит сообщение о невозможности входа,/bin/false
— оболочка немедленно завершит выполнение, вернув false.
Эти оболочки часто используются для сист емных пользователей, которым не требуется возможность входа в систему.
Примеры
Задача: заблокировать пользователю trex доступ в систему по паролю и по SSH-ключу.
$ sudo chsh -s usr/sbin/nologin trex
# или
$ sudo usermod -s usr/sbin/nologin trex
Проверить результат можно попыткой входа в учетную запись с помощью команды login
.
$ login
selectos login: trex
Password:
-----
# возможно приветственный экран
-----
Last login: Wed Jun 4 05:14:58 EDT 2025 on pts/0
This account is currently not available.
selectos login:
Примечание: опции для восстановления предыдущей выбранной оболочки не существует. Эту информацию нужно получить и запомнить перед изменением.
Как правило, в SelectOS используется оболочка /bin/bash
.