ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Пятница, 27 декабря, 2024

Как заблокировать и разблокировать пользователя в Linux

Как вы блокируете учетную запись пользователя в Linux? Еще важнее, как разблокировать пользователя в Linux? В этой статье показано несколько способов блокировки и разблокировки пользователей в Linux.

 

3 способа блокировки и разблокировки учетных записей пользователей в Linux

Может быть несколько причин, по которым вы хотите отключить пользователя в вашей многопользовательской среде Linux. Возможно, сотрудник покинул организацию и вместо того, чтобы полностью удалить пользователя, заблокирует учетную запись для архивных целей.

В этой статье мы покажем вам три способа блокировки пользователя в командной строке Linux. Мы также расскажем, как разблокировать пользователя.

 

Способ 1: блокировка и разблокировка пользователей с помощью команды passwd

Команда passwd в Linux работает с паролями учетной записи пользователя. Вы также можете использовать эту команду для блокировки учетной записи пользователя.

Команда в основном работает с файлом /etc/passwd. Вы можете вручную изменить этот файл, но мы не советуем этого делать.

Чтобы заблокировать пользователя с помощью команды passwd, вы можете использовать опцию -l или –lock следующим образом:

passwd -l user_name

 

Проверьте статус пользователя с помощью команды passwd

Вы можете узнать, заблокирован или разблокирован пользователь, используя опцию -S или –status команды passwd.

passwd -S user_name

 

Посмотрите на второе поле в выводе. Вот что это значит:

— P или PS: пароль установлен (пользователь разблокирован)
— L или LK: пользователь заблокирован
— N или NP: пароль не требуется пользователю

Вот пример вывода команды passwd:

standard P 10/14/2019 0 99999 7 -1

 

Чтобы разблокировать пользователя с помощью команды passwd, вы можете использовать опцию -u или –unlock:

passwd -u user_name

 

В Ubuntu вы увидите такой вывод как для блокировки, так и для разблокировки пользователя:

passwd: password expiry information changed

 

А как насчет входа через SSH?

Существует серьезная проблема с блокировкой пользователей таким способом. Поскольку он работает только с файлом /etc/passwd, заблокированный пользователь все равно сможет войти через ключи SSH (если установлен вход через ключ SSH). Мы покажем вам, как с этим бороться в следующем разделе.

 

Способ 2: блокировка и разблокировка пользователей с помощью команды usermod

Вы также можете использовать команду usermod. Команда в основном используется для изменения учетных записей пользователей в Linux. Вы также можете изменить состояние пользователя, заблокировав или разблокировав его с помощью usermod.

Чтобы заблокировать пользователя, вы можете использовать опцию -L следующим образом:

usermod -L user_name

 

Чтобы разблокировать пользователя, вы можете использовать опцию -U:

usermod -U user_name

 

Как проверить, заблокирован ли пользователь или нет? Команда usermod также работает с файлом /etc/passwd, поэтому вы можете использовать команду passwd -S user_name для проверки статуса пользователя.

Но usermod также работает с файлом /etc/passwd, так что заблокированный пользователь все еще может войти в систему через ключи SSH, верно? Верно. Но есть способы преодоления этой проблемы.

Например, вы можете изменить оболочку пользователя на nologin, и это не позволит пользователю войти в оболочку.

Другой метод заключается в блокировке пользователя и предоставлении даты истечения в прошлом. Что он делает, так это то, что он отключает учетную запись в прошлую дату, а затем блокирует ее.

Убедитесь, что прошедшая дата находится между 1970-01-02 и текущей датой.

usermod -L --expiredate 1970-01-02 user_name

 

Вы можете отменить это с помощью этой команды:

usermod -U --expiredate '' user_name

 

Существует аналогичный способ блокировки пользователя в Linux с помощью команды chage. Давайте посмотрим на это в следующем разделе.

 

Способ 3: блокировка и разблокировка пользователей с помощью команды chage

Команда chage используется для изменения информации об истечении срока действия пароля пользователя. Его можно использовать для автоматической блокировки неактивного пользователя после определенного количества дней бездействия.

По сути, то, что вы сделали с помощью команды usermod в предыдущем разделе, может быть достигнуто с помощью команды chage:

chage -E 1 username

 

По сути, вы установили дату истечения срока действия 1970-01-02. Вы можете увидеть детали, как это:

destroyer@andreyex:~$ sudo chage -l standard
Last password change					: Nov 07, 2019
Password expires					: never
Password inactive					: never
Account expires						: Jan 02, 1970
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

 

Вы можете удалить дату истечения срока действия и, таким образом, разблокировать пользователя следующим образом:

chage -E -1 username

 

В конце…

Как всегда, есть разные способы выполнить задачу в командной строке Linux. Мы показали здесь три способа блокировки и разблокировки пользователей в Linux. Вы знаете лучший способ или у вас есть рекомендации по блокировке пользователей? Поделитесь в разделе комментариев.

Exit mobile version