Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Отключение пользовательских аккаунтов в Linux

Оригинал: Disabling User Accounts in Linux
Автор: Lubos Rendek
Дата публикации: январь 2013 года
Перевод: А. Кривошей
Дата перевода: август 2013 г.

1. Введение

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

2. Редактирование файла shadow

Самый простой способ отключения пользовательского аккаунта - редактирование файла /etc/shadow, который отвечает за хранение зашифрованных паролей пользователей, перечисленных в файле /etc/passwd. Вот типичная запись пользовательского пароля в /etc/shadow:

tester:$6$KYriHdKR$Yku3LWgJmomsynpcle9BCA:15711:0:99999:7:::

Для отключения аккаунта достаточно просто добавить "*" или "!" перед зашифрованным паролем:

tester:!$6$KYriHdKR$Yku3LWgJmomsynpcle9BCA:15711:0:99999:7:::

То же самое можно сделать с помощью команды:

$ usermod -L tester

Любой метод авторизации, использующий для аутентификации пользователя файл /etc/shadow, больше не будет работать, так как расшифровать пароль будет невозможно:

$ su tester
Password: 
su: Authentication failure

Для активации пользовательского аккаунта просто удалите "!" из файла /etc/shadow, или воспользуйтесь командой:

$ usermod -U tester

Важно помнить, что этот метод отключения пользовательских аккаунтов в Linux работает только для тех программ и команд, которые для аутентификации пользователей используют файл /etc/shadow. Например, если у пользователя уже есть ssh-ключ, он все равно сможет авторизоваться, несмотря на модификацию /etc/shadow.

3. Пользовательская оболочка nologin

Другой, и более безопасный способ отключения пользовательского аккаунта - заменить существующую программную оболочку пользователя на псевдооболочку, такую как /usr/sbin/nologin, которая при попытке авторизации выдает вежливое сообщение:

This account is currently not available.

Для этого модифицируйте файл /etc/password, изменив запись пользователя:

tester:x:1001:1001:Tester,User,,:/home/tester:/bin/bash

на

tester:x:1001:1001:Tester,User,,:/home/tester:/usr/sbin/nologin

После этого пользователь не сможет авторизоваться даже с правильным паролем:

$ su tester
Password: 
This account is currently not available.

4. Заключение

Оба описанных выше метода имеют свои преимущества и недостатки, и какой из них выбрать, решать вам. Получить более подробную информацию об описанных здесь командах и файлах можно из man-страниц:

$ man shadow
$ man usermod
$ man nologin