Системным администраторам Linux приходится управлять несколькими учетными записями пользователей в своей системе. Часто каждый из этих пользователей имеет свой собственный домашний каталог или папку для хранения своих файлов и запуска своих приложений. Иногда системным администраторам необходимо удалить учетные записи пользователей из системы, в случае если сотрудник покидает организацию или учетная запись остается неиспользуемой в течение длительного времени. В этой статье мы узнаем, как удалить учетные записи пользователей с домашним каталогом в Linux.
Как удалить учетные записи пользователей с домашней директорией в Linux
Ниже описаны шаги по удалению учетных записей пользователей с домашним каталогом в Linux.
1. Создайте учетные записи пользователей
Сначала мы создадим учетную запись пользователя test1, используя следующие команды adduser. Вы также можете использовать для этой цели команду useradd. Его домашний каталог будет расположен по адресу /home/test1.
1 2 | adduser test1 passwd test1 |
Для удаления учетных записей пользователей можно использовать команды deluser (для Debian/Ubuntu) и userdel (для RHEL/Fedora/CentOS). Но дело в том, что удалять пользователей в Linux можно только тогда, когда они не вошли в систему. Поэтому, если они вошли в систему и используют различные приложения и сервисы, вам придется сначала завершить их работу и принудительно выйти из системы, прежде чем удалять их учетные записи.
2. Блокировка учетных записей пользователей в Linux
Прежде всего, необходимо заблокировать учетную запись пользователя, которую вы хотите удалить из системы, чтобы он не мог запускать процессы или даже входить в систему. Это можно сделать с помощью команды passwd с опцией -lock, за которой следует имя пользователя. Вот команда для блокировки пользователя test1.
1 | passwd --lock test1 |
3. Найти и завершить все процессы пользователя
Далее найдите все запущенные процессы указанного пользователя с помощью команды pgrep. Она выдаст вам PID всех процессов, запущенных пользователем. Вот команда для поиска всех процессов, запущенных пользователем test1.
1 2 | pgrep -u test1 |
Вы можете использовать вывод вышеуказанной команды в команде ps, чтобы получить более подробную информацию об этих процессах, например, их имя пользователя, PID, PPID (Parent Process IDs), используемый терминал, состояние процесса, путь команды и т.д.
1 | ps -f --pid $(pgrep -u test1) |
Далее, вы можете использовать команду kill для уничтожения этих . Используйте опцию -9, чтобы завершить процессы, а затем PID всех процессов, которые вы хотите убить.
1 | kill -9 2341 2322 3443 ... |
Также вы можете использовать опцию -u с командой killall, чтобы убить все процессы данного пользователя.
1 | killall -9 -u test1 |
В приведенной выше команде мы используем опцию -9, чтобы послать процессам сигнал SIGKILL. Опция -u используется для указания имени пользователя, процессы которого мы хотим убить.
Иногда команда killall отсутствует в системе RHEL/CentOS/Fedora. Если команда killall отсутствует в вашей системе, вы можете использовать следующую команду для ее установки.
RedHat/CentOS/Fedora
1 | yum install psmisc |
4. Резервное копирование данных пользователя
Рекомендуется создать резервную копию всех файлов и каталогов в домашней директории пользователя для дальнейшего использования. /home/test1 - это папка пользователя test1. Вот команда для резервного копирования содержимого папки пользователя test1.
1 | tar jcvf /home/test1-backup.tar.bz2 /home/test1 |
5. Удаление учетных записей пользователей
Теперь вы можете использовать команду deluser или userdel, в зависимости от дистрибутива Linux, для удаления учетной записи пользователя. Хотя эта команда удаляет учетные данные пользователя из системы, она не удаляет содержимое домашнего каталога пользователя. Для этого вы можете использовать опцию -remove-home.
В Debian и его производных
1 | deluser --remove-home test1 |
В системах на базе RedHat/CentOS
1 | userdel --remove test1 |
Заключение
В этой статье мы узнали, как удалять учетные записи пользователей в Linux. Как упоминалось ранее, ключевым моментом является блокировка учетной записи пользователя и уничтожение всех процессов, запущенных пользователем, перед удалением учетной записи пользователя. В противном случае вы получите ошибку.