Как удалить учетные записи пользователей с домашним каталогом в Linux

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

Удаление учетной записи пользователя с его домашним каталогом

В целях демонстрации сначала я начну с создания в моей системе двух учетных записей пользователей, таких как alex и ehan, с их домашними каталогами /home/alex и /home/ehan соответственно с помощью команды adduser.

# adduser alex
# passwd alex

Я использовал команду adduser для создания учетных записей пользователей в Linux. Вы также можете использовать команду useradd, они выполняют одинаковые функции.

Для удаления учетных записей пользователей в Linux можем воспользоваться командой deluser (для Debian и его производных) и userdel (для систем на основе RedHat/CentOS).

Директивы внутри файла конфигурации для команд deluser и userdel определяют, как он будет обрабатывать все пользовательские файлы и каталог при запуске команды.

# vi /etc/deluser.conf [В Debian и его производных]
# vi /etc/login.defs [В системах на базе RedHat/CentOS]

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

Чтобы удалить пользователя с домашним каталогом, вы можете использовать расширенный способ.

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

Блокировка учетных записей в Linux

Начните с блокировки пароля учетной записи пользователя, чтобы у пользователя не было доступа к системе. Это не позволит пользователю запускать процессы в системе.

Команда passwd, включающая параметр –lock, может помочь вам добиться этого:

# passwd --lock alex

Найти и убить все запущенные процессы пользователя

Затем выясните все запущенные процессы учетной записи пользователя и уничтожьте их, определив PID ( идентификаторы процессов ) процессов, принадлежащих пользователю, используя:

# pgrep -u alex

Затем вы можете перечислить промежуточные имена процессов имени пользователя, PID, PPID (идентификаторы родительского процесса), используемый терминал, состояние процесса, путь команды в полном формате с помощью следующей команды:

# ps -f --pid $ (pgrep -u alex)

Как только вы найдете все запущенные процессы пользователя, вы можете использовать команду killall, чтобы убить эти запущенные процессы.

# killall -9 -u alex

-9 это номер сигнала для SIGKILL сигнала или использовать -KILL вместо -9

-u определяет имя пользователя

Примечание . В последних выпусках версий RedHat / CentOS 7.x и Fedora 21+ вы получите сообщение об ошибке:

-bash: killall: команда не найдена
Чтобы исправить такую ​​ошибку, вам нужно установить пакет psmisc, как показано:

# yum install psmisc [В RedHat/CentOS 7.x]
# dnf install psmisc [В версиях Fedora 21+]

Резервное копирование данных пользователя перед удалением

Затем вы можете создавать резервные копии файлов пользователей, это может быть необязательно, но рекомендуется для использования в будущем, когда возникнет необходимость в просмотре данных и файлов учетной записи пользователя.

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

# tar jcvf /user-backups/alex-home-directory-backup.tar.bz2 /home/alex

Удалить учетную запись пользователя и файлы

Теперь вы можете безопасно удалить пользователя вместе с его домашним каталогом, чтобы удалить все пользовательские файлы в системе, используйте —remove-all-files опцию в команде ниже:

# deluser --remove-home alex [В Debian и его производных]
# userdel --remove alex [В системах на основе RedHat/CentOS]

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *