В одной из прошлых статей мы разбирали процесс создания пользователей в Linux с использованием команды useradd
. Системный администратор, в обязанности которого входит данный процесс, также занимается и удалением учетных записей. Это происходит, когда пользователь уходит из организации и становится неактивным. В этом случае, такой аккаунт больше не нужен компании и системный администратор должен удалить его вместе с домашним каталогом и файлами. Это поможет увеличить ресурсы (например, освободить место в хранилище) и улучшить безопасность системы.
В настоящей инструкции мы опишем процесс удаления пользователей в Linux, рассмотрим команды deluser
и userdel
, а также продемонстрируем дополнительные команды, которые могут потребоваться при удалении учетной записи.
cloud
Чтобы удалить пользователя в Linux через терминал, системный администратор должен быть знаком с 2 командами – deluser
и userdel
. Первая имеет расширенный функционал и используется в Debian-подобных дистрибутивах. В свою очередь, userdel
является более универсальной и быстрой командой для большинства дистрибутивов (CentOS, Red Hat, Fedora и другие), но имеет меньше функционала в сравнение с deluser
.
Важно помнить, что оба метода требуют прав суперпользователя для безопасного удаления учетных записей.
Синтаксис команды deluser
выглядит следующим образом:
deluser [список_опций] имя_пользователя
Список основных опций, которые можно использовать вместе с командой deluser
, и их краткое описание будут даны ниже в таблице.
Опция |
Описание |
|
Удаляет все файлы учетной записи, включая домашнюю директорию. |
|
Создает резервную копию домашней директории пользователя перед удалением. |
|
Указывает местоположение для сохранения резервной копии. |
|
Удаляет домашнюю директорию учетной записи |
|
Удаляет учетную запись из всех групп. |
|
Запускает команду в «тихом» режиме, без запросов на подтверждение. |
Таблица содержит не полный список доступных опций. Чтобы ознакомиться со всеми остальными, введите в консоль следующую команду:
deluser --help
Например, чтобы удалить пользователя Linux с домашним каталогом, достаточно ввести в терминал:
deluser --remove-home имя_пользователя
Настройки по умолчанию для команды deluser
хранятся в файле /etc/deluser.conf
. Он позволяет предопределить опции, которые будут использоваться при выполнении команды без их явного указания в командной строке.
Файл deluser.conf
может содержать такие опции, как:
Вы можете редактировать этот файл, чтобы настроить поведение deluser
в соответствии с вашими потребностями.
На сервере Timeweb Cloud с операционной системой Debian 10 данный файл будет содержать следующие настройки:
Синтаксис команды userdel
выглядит следующим образом:
userdel [список_опций] имя_пользователя
Количество опций у команды гораздо меньше, чем у deluser
. Они и их краткое описание представлены в таблице ниже.
Опция |
Описание |
|
Принудительно удаляет пользователя, даже если у него есть запущенные процессы. |
|
Удаляет домашнюю директорию учетной записи и все связанные с ней файлы. |
|
Удаляет только SELinux-объекты, связанные с учетной записью. |
Чтобы ознакомиться с командой и списком опций, в терминал нужно ввести:
userdel -h
Когда вы удаляете пользователя Linux на сервере, есть несколько дополнительных действий, которые нужно выполнить перед использованием userdel
и deluser
.
Чтобы заблокировать пользователю Linux доступ к системе, необходимо воспользоваться утилитой passwd
и выполнить следующую команду в терминале:
passwd -l имя_пользователя
Здесь, флаг -l
блокирует пароль к аккаунту указанной учетной записи. Однако, после этого пользователь все равно сможет войти в систему, используя иной способ входа (например, ключ SSH). Для гарантированной блокировки учетной записи используется:
usermod --expiredate 1
Данный шаг устанавливает дату истечения срока действия учетной записи на 1 января 1970 года. В UNIX-подобных системах эта дата обычно используется как способ указания, что учетная запись пользователя заблокирована или отключена.
На сервере пользователь взаимодействует с различными программами и службами, которые, в свою очередь, могут использовать файлы из домашнего каталога. Если у пользователя есть активные процессы, их нужно завершить, прежде чем удалять учетную запись, так как используемые файлы могут остаться в системе.
В первую очередь, необходимо определить активные процессы, принадлежащие удаляемому пользователю, чтобы убедиться, что там нет ничего важного. Для этого можно использовать команду ps
с опцией -u
:
ps -u имя_пользователя
После идентификации процессов, их нужно завершить. Чтобы остановить конкретный процесс, используется команда pkill
с указанием его имени:
pkill имя_процесса
Чтобы завершить все процессы с заданным именем, включая дочерние, используется команда killall
:
killall имя_процесса
Обратите внимание, что обе команды по умолчанию отправляют сигнал SIGTERM (15), что позволяет процессам корректно завершиться. Если процессы не реагируют на SIGTERM, можно использовать опцию -9 (SIGKILL), чтобы принудительно завершить их:
pkill -9 имя_процесса
killall -9 имя_процесса
Чтобы принудительно завершить все процессы, относящиеся к конкретной учетной записи, необходимо воспользоваться опцией -u
:
pkill -9 -u имя_пользователя
killall -9 -u имя_пользователя
После завершения процессов пользователя, выполните команду ps
снова, чтобы убедиться, что все процессы были успешно завершены.
Прежде чем удалить учетную запись и все ее файлы, рекомендуется создать резервную копию домашней директории. В частности, это касается работы с серьезными проектами. Данный шаг позволит вам не потерять важные для компании данные.
Чтобы выполнить резервное копирование, можно воспользоваться командой tar
для создания архива домашней директории пользователя:
tar -cvjf /path/to/backup/имя_пользователя.tar.gz /home/имя_пользователя
Здесь, /path/to/backup
— это путь к каталогу, в котором будет храниться резервная копия директории /home/
имя_пользователя
.
deluser
и userdel
.Теперь, домашний каталог и его файлы гарантировано будут удалены, а пользователь потеряет доступ к системе.
Конкретный пример удаления учетной записи вы можете найти в нашей статье «Удаление пользователя Linux в Ubuntu 20.04».
Подготовили для вас выгодные тарифы на облачные серверы
В инструкции мы подробно рассмотрели процесс удаления пользователя Linux. Помимо описания таких команд, как deluser
и userdel
, были рассмотрены подготовительные шаги, включающие блокировку учетной записи, остановку активных процессов пользователя и создание резервной копии домашнего каталога. Их выполнение гарантирует успешное удаление учетной записи из системы вместе с ее директорией и файлами.