Наши партнеры

UnixForum




Главная страница вход Новости Казань. | Какие вопросы задают на полиграфе при устройстве на работу

Библиотека сайта rus-linux.net

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

Оригинал: How to Delete User Accounts with Home Directory in Linux
Автор: Aaron Kili
Дата публикации: 4 декабря 2015 года
Перевод: А. Кривошей
Дата перевода: ноябрь 2016 г.

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

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

1. Для демонстрационных целей сначала я создам два пользовательских аккаунта с домашними директориями в своей системе с помощью команды adduser - для пользователей tecmint и linuxsay

# adduser tecmint
# passwd tecmint
# adduser linuxsay
# passwd linuxsay

создание аккаунтов

Вместо команды adduser можно использовать команду useradd, они предназначены для одного и того же.

2. Теперь давайте посмотрим, как удалить аккаунт пользователя в Linux с помощью команд deluser (для Debian и его производных) и userdel (для систем на базе RedHat/CentOS)

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

Давайте посмострим на конфигурационный файл для команды deluser, расположенный в /etc/deluser.conf для производных Debian, таких как Ubuntu, Kali, Mint; и расположенный в /etc/login.defs для RHEL/CentOS/Fedora.

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

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

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

Блокирование пользовательского аккаунта в Linux

Сначала заблокируем пользовательский аккаунт, чтобы пользователь не имел доступа в систему. Это предотвратит запуск процессов в системе от его имени. Для этого используется команда passwd с ключом –lock:

# passwd --lock tecmint
Locking password for user tecmint.
passwd: Success

Блокирование пользовательского аккаунта

Поиск и завершение всех запущенных процессов пользователя

Далее необходимо найти все работающие процессы этого пользователя и завершить их, определив PID процессов, принадлежащих нашему пользователю:

# pgrep -u tecmint
1947
1959
2091
2094
2095
2168
2175
2179
2183
2188
2190
2202
2207
2212
2214

Затем вы можете вы можете вывести список процессов с более подробной информацией:

список процессов

После того, как вы нашли все запущенные процессы пользователя, вы можете завершить их с помощью команды killall:

# killall -9 -u tecmint

-9 - это номер для сигнала SIGKILL, вместо него можно использовать ключ -KILL.

Замечание: в последних релизах RedHat/CentOS 7.x и Fedora 21+ вы можете получить следующую ошибку:

-bash: killall: command not found

Для ее предотвращения необходимо установить соответствующий пакет, как показано ниже:

# yum install psmisc       [В RedHat/CentOS 7.x]
# dnf install psmisc       [В Fedora 21+ ]

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

Далее вы можете сделать резервную копию пользовательских файлов, если нужно. Для создания архива с резервной копией домашней директории пользователя я использовал утилиту tar:

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

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

Удаление аккаунта и файлов пользователя

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

# deluser --remove-home tecmint      [On Debian and its derivatives]
# userdel --remove tecmint           [On RedHat/CentOS based systems]

Удаление аккаунта и файлов пользователя