Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Как удалить пользователя Linux: инструкция

Илья Ушаков
Илья Ушаков
Технический писатель
07 сентября 2023 г.
1475
6 минут чтения
Средний рейтинг статьи: 5

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

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

Основные команды для удаления пользователя

Чтобы удалить пользователя в Linux через терминал, системный администратор должен быть знаком с 2 командами – deluser и userdel. Первая имеет расширенный функционал и используется в Debian-подобных дистрибутивах. В свою очередь, userdel является более универсальной и быстрой командой для большинства дистрибутивов (CentOS, Red Hat, Fedora и другие), но имеет меньше функционала в сравнение с deluser.

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

deluser

Синтаксис команды deluser выглядит следующим образом:

deluser [список_опций] имя_пользователя

Список основных опций, которые можно использовать вместе с командой deluser, и их краткое описание будут даны ниже в таблице.

Опция

Описание

--remove-all-files

Удаляет все файлы учетной записи, включая домашнюю директорию.

--backup

Создает резервную копию домашней директории пользователя перед удалением.

--backup-to

Указывает местоположение для сохранения резервной копии.

--remove-home

Удаляет домашнюю директорию учетной записи

--remove-all-groups

Удаляет учетную запись из всех групп.

--quiet

Запускает команду в «тихом» режиме, без запросов на подтверждение.

Таблица содержит не полный список доступных опций. Чтобы ознакомиться со всеми остальными, введите в консоль следующую команду:

deluser --help

Image2

Например, чтобы удалить пользователя Linux с домашним каталогом, достаточно ввести в терминал:

deluser --remove-home имя_пользователя

Настройки по умолчанию для команды deluser хранятся в файле /etc/deluser.conf. Он позволяет предопределить опции, которые будут использоваться при выполнении команды без их явного указания в командной строке. 

Файл deluser.conf может содержать такие опции, как:

  • REMOVE_HOME;
  • REMOVE_ALL_FILES;
  • BACKUP;
  • BACKUP_TO;
  • NO_DEL_PATHS;
  • ONLY_IF_EMPTY;
  • EXCLUDE_FSTYPES.

Вы можете редактировать этот файл, чтобы настроить поведение deluser в соответствии с вашими потребностями.

На сервере Timeweb Cloud с операционной системой Debian 10 данный файл будет содержать следующие настройки:

Image3

userdel

Синтаксис команды userdel выглядит следующим образом:

userdel [список_опций] имя_пользователя

Количество опций у команды гораздо меньше, чем у deluser. Они и их краткое описание представлены в таблице ниже.

Опция

Описание

-f, --force

Принудительно удаляет пользователя, даже если у него есть запущенные процессы.

-r, --remove

Удаляет домашнюю директорию учетной записи и все связанные с ней файлы.

-Z, --selinux-user

Удаляет только SELinux-объекты, связанные с учетной записью.

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

userdel -h

Image1

Подготовка к удалению учетной записи

Когда вы удаляете пользователя Linux на сервере, есть несколько дополнительных действий, которые нужно выполнить перед использованием userdel и deluser

  1. Блокировка учетной записи.

Чтобы заблокировать пользователю Linux доступ к системе, необходимо воспользоваться утилитой passwd и выполнить следующую команду в терминале:

passwd -l имя_пользователя

Здесь, флаг -l блокирует пароль к аккаунту указанной учетной записи. Однако, после этого пользователь все равно сможет войти в систему, используя иной способ входа (например, ключ SSH). Для гарантированной блокировки учетной записи используется:

usermod --expiredate 1

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

  1. Ликвидация запущенных процессов пользователя.

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

В первую очередь, необходимо определить активные процессы, принадлежащие удаляемому пользователю, чтобы убедиться, что там нет ничего важного. Для этого можно использовать команду 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 снова, чтобы убедиться, что все процессы были успешно завершены.

  1. Резервное копирование данных.

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

Чтобы выполнить резервное копирование, можно воспользоваться командой tar для создания архива домашней директории пользователя:

tar -cvjf /path/to/backup/имя_пользователя.tar.gz /home/имя_пользователя

Здесь, /path/to/backup — это путь к каталогу, в котором будет храниться резервная копия директории /home/имя_пользователя.

  1. После выполнения всех вышеописанных шагов можно переходить к удалению пользователя Linux. Для этого воспользуйтесь уже знакомыми вам командами deluser и userdel.

Теперь, домашний каталог и его файлы гарантировано будут удалены, а пользователь потеряет доступ к системе.

Конкретный пример удаления учетной записи вы можете найти в нашей статье «Удаление пользователя Linux в Ubuntu 20.04».

Заключение

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

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону