Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Основные команды для удаления пользователя
Чтобы удалить пользователя в Linux через терминал, администратор сервера должен быть знаком с 2 командами – deluser и userdel. Первая имеет расширенный функционал и используется в Debian-подобных дистрибутивах. В свою очередь, userdel является более универсальной и быстрой командой для большинства дистрибутивов (CentOS, Red Hat, Fedora и другие), но имеет меньше функционала в сравнение с deluser.
Важно помнить, что оба метода требуют прав суперпользователя для безопасного удаления учетных записей.
Синтаксис команды deluser выглядит следующим образом:
deluser [список_опций] имя_пользователяСписок основных опций, которые можно использовать вместе с командой deluser, и их краткое описание будут даны ниже в таблице.
| Опция | Описание |
|---|---|
--remove-all-files | Удаляет все файлы учётной записи, включая домашнюю директорию. |
--backup | Создает резервную копию домашней директории пользователя перед удалением. |
--backup-to | Указывает местоположение для сохранения резервной копии. |
--remove-home | Удаляет домашнюю директорию учётной записи |
--remove-all-groups | Удаляет учётную запись из всех групп. |
--quiet | Запускает команду в «тихом» режиме, без запросов на подтверждение. |
Удаляет все файлы учётной записи, включая домашнюю директорию.
Создает резервную копию домашней директории пользователя перед удалением.
Указывает местоположение для сохранения резервной копии.
Удаляет домашнюю директорию учётной записи
Удаляет учётную запись из всех групп.
Запускает команду в «тихом» режиме, без запросов на подтверждение.
Таблица содержит не полный список доступных опций. Чтобы ознакомиться со всеми остальными, введите в консоль следующую команду:
Например,**** чтобы удалить пользователя 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 в соответствии с вашими потребностями.
На сервере Simple-Server с операционной системой Debian 10 данный файл будет содержать следующие настройки:
Синтаксис команды userdel выглядит следующим образом:
userdel [список_опций] имя_пользователяКоличество опций у команды гораздо меньше, чем у deluser. Они и их краткое описание представлены в таблице ниже.
| Опция | Описание |
|---|---|
-f, --force | Принудительно удаляет пользователя, даже если у него есть запущенные процессы. |
-r, --remove | Удаляет домашнюю директорию учётной записи и все связанные с ней файлы. |
-Z, --selinux-user | Удаляет только SELinux-объекты, связанные с учетной записью. |
Принудительно удаляет пользователя, даже если у него есть запущенные процессы.
Удаляет домашнюю директорию учётной записи и все связанные с ней файлы.
Удаляет только SELinux-объекты, связанные с учетной записью.
Чтобы ознакомиться с командой и списком опций, в терминал нужно ввести:
Подготовка к удалению учётной записи
Когда вы удаляете пользователя Linux на сервере, есть несколько дополнительных действий, которые нужно выполнить перед использованием userdel и deluser.
- Блокировка учётной записи.
Чтобы заблокировать пользователю Linux доступ к системе, необходимо воспользоваться утилитой passwd и выполнить следующую команду в терминале:
passwd -l имя_пользователяДанный шаг устанавливает дату истечения срока действия учётной записи на 1 января 1970 года. В UNIX-подобных системах эта дата обычно используется как способ указания, что учетная запись пользователя заблокирована или отключена.
- Ликвидация запущенных процессов пользователя.
На сервере пользователь взаимодействует с различными программами и службами, которые, в свою очередь, могут использовать файлы из домашнего каталога. Если у пользователя есть активные процессы, их нужно завершить, прежде чем удалять учётную запись, так как используемые файлы могут остаться в системе.
В первую очередь, необходимо определить активные процессы, принадлежащие удаляемому пользователю, чтобы убедиться, что там нет ничего важного. Для этого можно использовать команду ps с опцией -u:
После идентификации процессов, их нужно завершить. Чтобы остановить конкретный процесс, используется команда pkill с указанием его имени:
Чтобы завершить все процессы с заданным именем, включая дочерние, используется команда 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/``имя_пользователя.
- После выполнения всех вышеописанных шагов можно переходить к удалению пользователя Linux. Для этого воспользуйтесь уже знакомыми вам командами
deluserиuserdel.
Теперь, домашний каталог и его файлы гарантировано будут удалены, а пользователь потеряет доступ к системе.
Конкретный пример удаления учётной записи вы можете найти в нашей статье «Удаление пользователя Linux в Ubuntu 20.04».
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.