Зачем удалять учётную запись
На VPS и выделенных серверах учётные записи создают для разработчиков, DevOps-инженеров, клиентов хостинга или отдельных сервисов. Со временем часть из них перестаёт использоваться: сотрудник уволился, проект закрыли, доступ выдали временно.
Оставлять «мертвый» аккаунт рискованно:
- 🔓 Безопасность — старый пароль или SSH-ключ могут попасть в чужие руки.
- 💾 Диск — домашний каталог и загрузки занимают место на NVMe/SSD.
- 📋 Аудит — сложнее понять, кто реально имеет доступ к серверу.
- ⚙️ Сервисы — cron-задачи, systemd user units и почтовые ящики продолжают работать от имени удаляемого пользователя.
Удаление учётной записи — стандартная задача администратора. Главное — сделать это осознанно: сначала подготовка, потом команда удаления, затем проверка.
Все действия ниже выполняются от root или через
sudo.
Краткий чеклист перед удалением
| Шаг | Действие | Зачем |
|---|---|---|
| 1 | Убедиться, что аккаунт больше не нужен | Избежать потери рабочих данных |
| 2 | Заблокировать вход | Пользователь не успеет зайти во время процедуры |
| 3 | Завершить его процессы | Файлы в /home не будут заняты |
| 4 | Сохранить бэкап /home/username | Вернуть данные при ошибке |
| 5 | Удалить учётную запись с нужными флагами | Очистить passwd/shadow и при необходимости каталог |
| 6 | Проверить «хвосты» | Cron, почта, группы, sudo |
Какую команду выбрать: userdel или deluser
В Linux нет одной «универсальной» команды — набор утилит зависит от семейства дистрибутива.
userdel
Стандартная утилита из пакета shadow-utils. Используется в RHEL, CentOS, AlmaLinux, Rocky Linux, Fedora и большинстве серверных образов.
userdel [опции] имя_пользователя| Опция | Назначение |
|---|---|
-r, --remove | Удалить домашний каталог и почтовый spool |
-f, --force | Принудительное удаление, даже если пользователь залогинен (осторожно) |
-Z | Удалить SELinux-контекст пользователя (актуально для RHEL/Alma) |
Справка:
userdel --helpdeluser
Обёртка для Debian и Ubuntu. Удобнее для тонкой настройки: бэкап домашней директории, удаление из групп, «тихий» режим.
deluser [опции] имя_пользователя| Опция | Назначение |
|---|---|
--remove-home | Удалить /home/username |
--remove-all-files | Удалить все файлы, принадлежащие пользователю |
--backup | Сохранить архив домашнего каталога перед удалением |
--backup-to ПУТЬ | Каталог для бэкапа |
--remove-all-groups | Исключить из всех групп |
--quiet | Без интерактивных вопросов |
Справка:
deluser --helpНастройки по умолчанию (Debian/Ubuntu)
Поведение deluser без явных флагов задаётся в /etc/deluser.conf. Типичные параметры:
REMOVE_HOME— удалять ли домашний каталог автоматически;BACKUP/BACKUP_TO— создавать ли резервную копию и куда;ONLY_IF_EMPTY— удалять home только если он пуст;NO_DEL_PATHS— каталоги, которые нельзя трогать.
Перед массовым удалением аккаунтов имеет смысл один раз просмотреть этот файл:
cat /etc/deluser.confПодготовка: блокировка доступа
Не спешите сразу вызывать userdel. Сначала отрежьте вход, чтобы пользователь не начал новую сессию.
Заблокировать пароль
sudo passwd -l usernameФлаг -l (lock) добавляет ! в поле пароля в /etc/shadow — вход по паролю становится невозможным.
Отключить срок действия учётной записи
SSH-ключи при этом остаются рабочими. Чтобы полностью закрыть доступ по ключу и паролю, установите дату истечения в прошлое:
sudo usermod --expiredate 1 usernameили явно:
sudo usermod -e 1970-01-01 usernameПроверка:
sudo chage -l usernameЗавершение процессов пользователя
Пока процессы держат файлы в /home/username, удаление каталога может завершиться ошибкой или оставить «мусор».
Посмотреть активные процессы
ps -u usernameили подробнее:
ps -u username -o pid,ppid,cmd,%mem,%cpuЗавершить процессы
Мягко (SIGTERM, код 15):
sudo pkill -u usernameили по имени конкретной программы:
sudo pkill -u username nginxЕсли процесс не останавливается — принудительно (SIGKILL):
sudo pkill -9 -u username
sudo killall -9 -u username имя_процессаSIGKILL не даёт приложению корректно закрыть файлы. Используйте только когда
-15не помог.
Повторная проверка:
ps -u usernameЕсли вывод пуст — можно переходить к бэкапу и удалению.
Резервная копия домашнего каталога
Даже если политика компании — «удалять всё», бэкап спасает от случайной ошибки (не тот логин, забытый архив проекта).
sudo tar -czvf /root/backups/username-$(date +%F).tar.gz /home/usernameПроверьте архив:
sudo tar -tzf /root/backups/username-$(date +%F).tar.gz | headНа VPS Simple-Server удобно складывать бэкапы на отдельный том или выгружать архив через scp на локальную машину.
Удаление учётной записи
Debian / Ubuntu — deluser
Только запись в системе (домашний каталог останется):
sudo deluser usernameУдалить пользователя и домашнюю директорию:
sudo deluser --remove-home usernameС бэкапом перед удалением:
sudo deluser --backup --remove-home usernameУказать каталог для бэкапа:
sudo deluser --backup-to /var/backups/users --remove-home usernameRHEL / AlmaLinux / CentOS — userdel
Без удаления /home:
sudo userdel usernameС удалением домашнего каталога и почтового ящика:
sudo userdel -r usernameЧто проверить после удаления
# Запись в passwd исчезла
grep '^username:' /etc/passwd
# Домашний каталог (если не использовали -r / --remove-home)
ls -la /home/username
# Cron пользователя
sudo crontab -u username -l 2>/dev/null
# Файлы, всё ещё принадлежащие старому UID (если UID переиспользован — редкий случай)
sudo find / -nouser -nogroup 2>/dev/null | headЕсли пользователь был в /etc/sudoers или в файлах /etc/sudoers.d/, удалите соответствующие строки вручную:
sudo visudoТипичные ошибки
Удаление без -r / --remove-home.
Учётная запись исчезнет из /etc/passwd, но /home/username останется на диске. Это не баг — так работает команда по умолчанию.
Активная SSH-сессия.
userdel может отказать, пока пользователь залогинен. Завершите сессию или используйте -f только если понимаете последствия.
Путаница с deluser и userdel на Ubuntu.
На Debian/Ubuntu обе могут быть установлены, но deluser — предпочтительный и более гибкий вариант.
Забытые systemd user-сервисы.
Если пользователь запускал systemd --user unit'ы, проверьте каталоги:
ls /home/username/.config/systemd/user/ 2>/dev/nullПосле удаления home они исчезнут вместе с --remove-home.
Когда лучше не удалять, а архивировать
Иногда вместо полного удаления достаточно:
- Заблокировать вход (
passwd -l+usermod -e 1). - Перенести
/home/usernameв/archive/username-2026. - Оставить запись в passwd с shell
/usr/sbin/nologin:
sudo usermod -s /usr/sbin/nologin usernameТак проще восстановить доступ при споре о данных или аудите.
Итог
| Дистрибутив | Команда | Удалить с домашним каталогом |
|---|---|---|
| Ubuntu, Debian | deluser --remove-home user | --remove-home |
| AlmaLinux, CentOS, RHEL | userdel -r user | -r |
Безопасная схема: заблокировать → завершить процессы → бэкап → удалить → проверить sudo/cron/файлы.
На VPS под администрирование удобнее заранее завести каталог /root/backups или подключить автоматические снимки диска — тогда откат после ошибки займёт минуты, а не часы восстановления из логов.
Нужен сервер для практики? Закажите VPS с Ubuntu или Debian на Simple-Server — root-доступ, NVMe и поддержка 24/7. Создавайте тестовых пользователей на staging-сервере и отрабатывайте процедуру удаления без риска для production.