8.7. Удаление пользователя
Проблема
Требуется удалить из системы учётную запись пользователя и найти все файлы, принадлежащие этому пользователю.
Решение
Учетная запись удаляется командой userdel. Поиск файлов, принадлежащих пользователю, осуществляется командой find.
Удаление учётной записи:
# userdel aborg
Чтобы команда userdel сработала, пользователь не может находиться в системе, и под его именем не должны быть запущены процессы.
Команда userdel удаляет данные пользователя из всех системных файлов (/etc/passwd, /etc/shadow, /etc/group), но не трогает файлы, принадлежащие этому пользователю. Чтобы удалить домашний каталог пользователя и почтовый ящик, добавьте флаг -r:
# userdel -r aborg
Другие файлы (такие, как crontab и файлы данных вне домашнего каталога) нужно искать отдельно:
# find / -uid 1200
Комментарий
Правила удаления учётной записи — дело тонкое. Если вы работаете в своей домашней системе, делайте, что хотите. В корпоративных или коммерческих системах важно заранее ознакомиться с политикой безопасности вашей компании. Обычно рекомендуется сначала заблокировать учётную запись работника и создать резервную копию всех принадлежащих ему файлов. Это позволит избежать случайной потери важных данных и упростит их восстановление в случае необходимости.
Некоторые компании могут требовать ведения архива деятельности пользователя, особенно если сотрудник имел доступ к конфиденциальным данным. Также стоит отметить, что файлы пользователя могут быть разбросаны по всей файловой системе, не ограничиваясь только его домашней директорией. Для полного удаления всех файлов, принадлежащих пользователю, необходимо выполнить команду find по всей системе. Команда find / -uid <user_id> поможет отыскать все файлы, принадлежащие пользователю, где user_id — это числовой идентификатор пользователя (UID).
В случае систем с большим количеством пользователей или в средах, где безопасность имеет первостепенное значение, имеет смысл применять более детальный аудит перед удалением учётной записи. Например, сначала можно заблокировать учётную запись, используя команду:
# usermod -L aborg
Это позволит временно деактивировать учётную запись пользователя, не удаляя её, что даст возможность системному администратору тщательно проверить все файлы и процессы, которые могли быть связаны с данным пользователем.
Важно помнить, что удаление учётной записи пользователя, особенно в корпоративной системе, может привести к неожиданным последствиям, если не учтены все возможные зависимости — например, если пользователь владел системными сервисами или запланированными заданиями (cron).
После удаления учётной записи также рекомендуется проверить настройки системных служб и планировщиков задач, таких как cron, чтобы убедиться, что не осталось активных процессов, привязанных к удалённому пользователю. Это можно сделать с помощью команды:
# crontab -l -u aborg
Таким образом, системные администраторы могут избежать нежелательных ошибок и сбоев, связанных с удалёнными учетными записями.
См. также
userdel(8), find(1); раздел 8.9.