Гид по технологиям

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

10 min read Системное администрирование Обновлено 20 Dec 2025
Безопасное удаление пользователя в Linux
Безопасное удаление пользователя в Linux

Заблокированная учётная запись пользователя в Linux.

Быстрые ссылки

  • User Accounts on Linux

  • Why Delete an Account

  • Check the Login

  • Reviewing The User’s Processes

  • Locking the Account

  • Killing the Processes

  • Archiving the User’s home Directory

  • Removing cron Jobs

  • Removing Print Jobs

  • Deleting the User Account

  • It’s a Wrap

В этой статье описан проверенный порядок действий при удалении пользователя из Linux: от проверки сеансов и процессов до архивирования данных, удаления задач cron и окончательного удаления учётной записи. Материал рассчитан на системных администраторов и сотрудников security-операций.

Введение

Удаление пользователя — это не просто запуск одной команды. В продакшене вам нужно убедиться, что вы не потеряете важные данные, не нарушите зависимости и сможете восстановить систему, если что-то пошло не по плану. Если вам нужно лишь быстро удалить запись учётки без дополнительной уборки, можно перейти к разделу Удаление учётной записи. В этом руководстве показаны безопасные шаги для ситуаций от планового увольнения до срочного инцидента защиты.

Зачем удалять учётную запись

Учётную запись могут удалить по разным причинам: сотрудник уходит, срок доступа истёк, окончание проекта, или экстренные меры при подозрении на злоупотребления. При срочном отключении — например, при инциденте безопасности — важно быстро заблокировать доступ, завершить активные сеансы и зафиксировать состояние системы для последующего расследования.

Пример сценария в статье: пользователь Eric работает и ещё не знает, что ему прекратят доступ. Вам, как администратору, поручено срочно вывести его из системы, сохранить его данные и удалить учётную запись.

Проверка сеансов пользователя

Сначала убедитесь, что пользователь действительно вошёл в систему и сколько у него сеансов. Команда who показывает активные сеансы:

who

Если Eric вошёл один раз, вы увидите соответствующую строку. Если он подключён по SSH или имеет несколько виртуальных терминалов, это тоже будет отображено.

Просмотр процессов пользователя

Перед принудительным завершением процессов полезно увидеть, что именно выполняет пользователь. Команда ps с опцией -u покажет процессы, принадлежащие указанной учётной записи:

ps -u eric

Результат команды ps -u eric в терминале.

Для интерактивного мониторинга используйте top с опцией -U, чтобы отфильтровать по пользователю (обратите внимание на заглавную U):

top -U eric

Вывод top -U eric с информацией о процессах, CPU и памяти.

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

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

Чтобы предотвратить повторный вход пользователю после завершения его процессов, сначала заблокируйте пароль. Захешированные пароли хранятся в /etc/shadow. Для демонстрации можно вывести первые два поля записи Eric:

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

Команда awk разбирает поля, разделённые двоеточием, и печатает имя и зашифрованный пароль. Чтобы заблокировать пароль используйте passwd с опцией -l:

sudo passwd -l eric

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

Важно: блокировка пароля не отключает активные сеансы — поэтому сначала блокируйте пароль, затем завершайте процессы.

Завершение процессов пользователя

Для форсированного завершения всех процессов пользователя удобно воспользоваться pkill с сигналом KILL и опцией -u:

sudo pkill -KILL -u eric

Аналоги и альтернативы:

  • killall -u eric — доступно не везде, поведение зависит от реализации.
  • skill -KILL -u eric — альтернатива на некоторых системах.

Проверьте, что сеанс завершён:

who

Если процессы не завершены, используйте ps -u eric и завершайте вручную по PID: sudo kill -9 .

Архивирование домашней директории

Перед удалением учётной записи и домашней директории рекомендуется создать архив. Пример с tar и сжатие bzip2:

sudo tar cfjv eric-20200820.tar.bz /home/eric

Обозначения опций:

  • c — создать архив
  • f — указать имя файла
  • j — сжатие bzip2
  • v — подробный вывод

Проверьте файл архива:

ls -lh eric-20200820.tar.bz

Альтернативы:

  • Использовать gzip (опция -z) для быстрого сжатия: sudo tar czfv …
  • rsync для копирования без архивации: sudo rsync -aH /home/eric /backup/eric
  • borg/restic для резервного копирования с дедупликацией

Выберите метод в соответствии с политикой архивации и хранилищем.

Проверка и удаление cron задач

Пользователь мог иметь запланированные cron задачи. Проверить файл crontab конкретного пользователя можно так:

sudo ls -lh /var/spool/cron/crontabs/eric

Чтобы удалить все cron задания пользователя:

sudo crontab -r -u eric

Если система использует systemd timers вместо classic cron, проверьте unit’ы и user-level таймеры: sudo systemctl list-timers –all –user –no-legend –all (для конкретного пользователя приходится переключаться в его контекст).

Удаление печатных заданий

Чтобы очистить очередь печати от заданий конкретного пользователя:

lprm -U eric

На системах с CUPS можно дополнительно проверять очередь через lpstat и отменять задания через cancel или через веб-интерфейс CUPS.

Поиск файлов, принадлежащих пользователю

Даже после удаления домена остаются файлы в других местах ФС. Чтобы найти все файлы, принадлежащие пользователю по имени:

sudo find / -user eric -print 2>/dev/null

Если учётная запись уже удалена, но вы знаете UID, используйте -uid:

sudo find / -uid 1002 -print 2>/dev/null

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

sudo find / -user eric -print0 | xargs -0 ls -ld

Будьте осторожны с системными путями (/var/lib, /opt, /srv), где пользователь мог оставлять данные для служб.

Удаление учётной записи

Команды удаления различаются в зависимости от дистрибутива.

На Debian-подобных системах рекомендуется deluser. Пример для Ubuntu:

type deluser
type userdel

Чтобы удалить учётную запись и домашнюю директорию с помощью deluser:

sudo deluser --remove-home eric

Для не-Debian систем используйте userdel:

sudo userdel --remove eric

Если вам нужно сохранить группу пользователя или переназначить её — проверьте /etc/group и при необходимости выполните sudo groupdel eric.

Проверка удаления директории /home:

ls /home

Проверка наличия записи в /etc/group:

sudo grep '^eric:' /etc/group || echo "группа eric не найдена"

Дальнейшие проверки и уборка

  • Проверить журнал sudo: sudo ausearch -m USER_CMD — если настроен auditd, или просмотреть /var/log/auth.log для попыток доступа.
  • Проверить cron и systemd таймеры глобально.
  • Проверить ssh-ключи в /etc/ssh/ssh_known_hosts и ~/.ssh/authorized_keys других пользователей/сервисов.
  • Проверить ACL и POSIX права: getfacl /some/path
  • Если у пользователя были записи в базах данных или конфигурациях сервисов — обновите конфигурации.

Политика хранения и соответствие требованиям

Перед удалением убедитесь в соответствии с политикой хранения данных и юридическими требованиями: возможно, на пользователя наложена судебная или корпоративная блокировка данных (legal hold), и его данные нельзя удалять. Обсудите с юридическим отделом и службой безопасности.

SOP для экстренного удаления пользователя

Ниже — краткий, но полный порядок действий (SOP), пригодный для экстренного сценария:

  1. Определить цель: имя пользователя и степень срочности.
  2. Заблокировать пароль: sudo passwd -l
  3. Уведомить службу безопасности и задокументировать время действий.
  4. Сделать снимок процессов и сетевых подключений: ps -u , ss -plant | grep
  5. Заархивировать /home и важные пути: sudo tar cfjv -YYYYMMDD.tar.bz /home/
  6. Завершить процессы: sudo pkill -KILL -u
  7. Удалить cron задания: sudo crontab -r -u
  8. Очистить очередь печати: lprm -U
  9. Найти оставшиеся файлы: sudo find / -user -print > files-by-user.txt
  10. Удалить учётную запись с опцией удаления домашней: sudo deluser –remove-home или sudo userdel –remove
  11. Проверить логи и зафиксировать результаты.
  12. Сообщить заинтересованным сторонам и закрыть инцидент.

К каждому шагу приложите отметку времени и имя исполнителя.

План восстановления при ошибке (откат)

Если вы по ошибке удалили не того пользователя или удаление прошло некорректно, выполните следующие действия для отката:

  1. Если у вас есть созданный архив (tar, rsync, backup), восстановите файлы: sudo tar xfjv eric-YYYYMMDD.tar.bz -C /
  2. Воссоздайте учётную запись с тем же UID и GID, чтобы права файлов остались корректными:
sudo useradd -m -u 1002 -g 1002 -s /bin/bash eric
sudo passwd eric   # установить временный пароль
  1. Восстановите cron: sudo crontab -u eric /path/to/saved-crontab
  2. Восстановите ssh-ключи в /home/eric/.ssh/authorized_keys
  3. Верните группы: sudo groupadd -g 1002 eric если требуется
  4. Проверьте логи и убедитесь, что файловые и сервисные зависимости восстановлены.

Критерий успешного отката: учётная запись существует с прежним UID, файлы в /home доступны и сервисы работают, как до удаления.

Роли и чек-листы

Чек-лист для системного администратора:

  • Заблокировать пароль
  • Заархивировать /home и важные данные
  • Завершить процессы
  • Удалить cron и печать
  • Удалить учётную запись
  • Проверить остаточные файлы по UID
  • Логировать все шаги

Чек-лист для офицера безопасности:

  • Подтвердить причину удаления
  • При необходимости запросить legal hold
  • Координировать сопровождение эвакуации сотрудника
  • Зафиксировать доказательства для расследования

Чек-лист для менеджера:

  • Подтвердить доступы и передачи задач
  • Обеспечить передачу проектов и документов
  • Уведомить HR и юридический отдел

Правила безопасности и жёсткая позиция

  • Логируйте все действия: кто, когда и какие команды выполнял.
  • Сохраняйте архивы в защищённом хранилище с ограниченным доступом.
  • Минимизируйте прямой доступ root; используйте sudo с журналированием.
  • Настройте 2FA и централизованное управление ключами для SSH.
  • Подумайте о блокировке сетевого доступа на уровне маршрутизатора/фаервола для запрещённых сессий.

Соображения по приватности и соответствию

При обращении с персональными данными соблюдайте внутренние правила хранения и правовые требования (например, GDPR/закон о персональных данных). Перед удалением убедитесь, что нет юридической обязанности сохранить данные. Если такая обязанность есть, переместите архивы в «корпоративный сейф» или отдел судебной экспертизы.

Совместимость команд по дистрибутивам

  • Debian/Ubuntu: deluser, adduser
  • RHEL/CentOS/Fedora: userdel, useradd, возможно инсталлируется deluser из дополнительных пакетов
  • BusyBox/встраиваемые системы: minimal набор; используйте доступные утилиты и делайте резервные копии вручную

Всегда проверяйте man-страницы: man deluser, man userdel, man passwd.

Критерии приёмки

  1. Пользователь не может войти в систему (проверено попыткой входа и по логам).
  2. Все активные сеансы пользователя завершены.
  3. Домашняя директория архивирована и сохранена в утверждённом месте.
  4. Все планировщики задач и печать очищены.
  5. В системе не осталось файлов, принадлежащих user или UID, кроме явных исключений, согласованных с владельцем.
  6. Запись в /etc/passwd и /etc/shadow удалена, группа удалена при необходимости.
  7. Все действия задокументированы в журнале инцидента.

Модель принятия решения и эвристики

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

Небольшая методология для повторяемости

  1. Идентификация
  2. Блокировка
  3. Снятие снимков состояния
  4. Архивирование
  5. Завершение процессов
  6. Удаление учётной записи
  7. Проверка и отчёт

Decision tree в Mermaid

flowchart TD
  A[Нужно удалить пользователя?] --> B{Срочно ли?}
  B -->|Да| C[Блокировать пароль]
  C --> D[Снять снимки процессов и логов]
  D --> E[Заархивировать данные]
  E --> F[Завершить процессы]
  F --> G[Удалить учётную запись]
  B -->|Нет| H[Провести оценку и уведомить владельцев]
  H --> I[Согласовать retention и legal hold]
  I --> E
  G --> J[Проверить остатки и завершить инцидент]

Короткая галерея пограничных случаев

  • Удаление пользователя, у которого были запущены долгие фоновые задания: сначала дождитесь завершения или перенастройте задания на другого пользователя.
  • Удаление пользователя, чьи файлы используются сервисом: переведите службы на нового владельца перед удалением.
  • Учётная запись с «shared home» или общими ресурсами: тщательно проанализируйте, кому принадлежат данные.

Однострочные определения терминов

  • UID — уникальный идентификатор пользователя в системе.
  • GID — идентификатор группы пользователя.
  • crontab — таблица задач планировщика cron для пользователя.
  • /etc/shadow — файл со захешированными паролями и информацией об учётных записях.

Шаблон отчёта действий (копируемый)

  • Дата и время начала: YYYY-MM-DD HH:MM
  • Исполнитель: <имя администратора>
  • Цель: удаление учётной записи eric (срочно/планово)
  • Шаги и команды: passwd -l eric; tar cfjv …; pkill -KILL -u eric; deluser –remove-home eric
  • Место хранения архива: /srv/backups/eric-YYYYMMDD.tar.bz
  • Результат: учётная запись удалена, архив сохранён
  • Комментарии: legal hold? нет/да — действия при наличии

Заключение

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

Скриншот команды sudo deluser --remove-home eric в терминале.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Музыка в облаке: как слушать коллекцию с любого устройства
Технологии

Музыка в облаке: как слушать коллекцию с любого устройства

Установка Windows Home Server (Vail) в VMware
Виртуализация

Установка Windows Home Server (Vail) в VMware

Как создать гид в Instagram из постов
Социальные сети

Как создать гид в Instagram из постов

NVIDIA Broadcast: установка и настройка
Руководство

NVIDIA Broadcast: установка и настройка

GitBook для API‑документации
Документация

GitBook для API‑документации

Публичные страницы Notion: делиться и управлять безопасно
Продуктивность

Публичные страницы Notion: делиться и управлять безопасно