Команда deluser

Команда deluser предназначена для работы с одноименным сценарием на языке Perl, упрощающим удаление учетных записей пользователей и групп пользователей в дистрибутиве Debian, а также основанных на нем дистрибутивах (Ubuntu, Linux Mint, …). Упомянутый сценарий также реализует функционал команды delgroup, также доступной в дистрибутивах на основе Debian. Разумеется, упомянутые команды лишь упрощают работу с учетными записями пользователей и при необходимости могут быть заменены на команды userdel и groupdel. По умолчанию сценарий старается сохранять все доступные данные, не удаляя файлы, связанные с удаляемыми учетными записями пользователей.

Стандартный синтаксис команды выглядит следующим образом:

# deluser [параметры] имя-пользователя

Сценарий поддерживает не так много параметров. Наиболее важными параметрами являются параметр --force, позволяющий удалить учетную запись пользователя даже в том случае, если он работает с системой, параметр --remove-home, позволяющий не сохранять файлы, связанные с удаляемой учетной записью пользователя, а также параметр --backup-to для копирования связанных с удаляемой учетной записью пользователя файлов в указанную директорию. Кроме того, существует параметр --system, который позволяет удалять системные учетные записи, то есть те учетные записи, которые используются для запуска различных системных служб; этот параметр должен использоваться исключительно опытными пользователями, так как с помощью него достаточно просто вывести систему из работоспособного состояния.

Примеры использования

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

Для начала создадим учетную запись пользователя с помощью сценария adduser:

$ sudo adduser testuser1
[sudo] пароль для alex:
Добавляется пользователь «testuser1» ...
Добавляется новая группа «testuser1» (1001) ...
Добавляется новый пользователь «testuser1» (1001) в группу «testuser1» ...
Создаётся домашний каталог «/home/testuser1» ...
Копирование файлов из «/etc/skel» ...
Новый пароль:
Повторите ввод нового пароля:
passwd: пароль успешно обновлён
Изменение информации о пользователе testuser1
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
    Полное имя []: Test User
    Номер комнаты []: 1
    Рабочий телефон []: 112
    Домашний телефон []: 113
    Другое []: Nothing to comment
Данная информация корректна? [Y/n] y

Учетная запись пользователя успешно создана:

$ sudo cat /etc/passwd | grep testuser1
testuser1:x:1001:1001:Test User,1,112,113,Nothing to comment:/home/testuser1:/bin/bash

Домашняя директория также на месте:

$ ls -al /home | grep testuser1
drwxr-x--- 2 testuser1 testuser1 57 июн 27 14:37 testuser1

Обратите внимание на то, что наряду с учетной записью пользователя была создана одноименная группа пользователей:

$ sudo cat /etc/group | grep testuser1
testuser1:x:1001:

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

$ sudo deluser testuser1
Удаляется пользователь «testuser1» ...
Предупреждение: в группе `testuser1' больше никого нет.
Готово.

Учетная запись пользователя удалена:

$ sudo cat /etc/passwd | grep testuser1

Домашняя директория пользователя сохранена:

$ ls -al /home | grep testuser1
drwxr-x--- 2 1001 1001 57 июн 27 14:37 testuser1

При этом созданная группа пользователей автоматически удаляется:

$ sudo cat /etc/group | grep testuser1

При необходимости домашняя директория пользователя может быть удалена в ручном режиме:

$ sudo rm -rf /home/testuser1
$ ls -al /home | grep testuser1

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

Полное удаление учетной записи пользователя

Создадим другую учетную запись пользователя с помощью сценария adduser:

$ sudo adduser testuser2
Добавляется пользователь «testuser2» ...
Добавляется новая группа «testuser2» (1001) ...
Добавляется новый пользователь «testuser2» (1001) в группу «testuser2» ...
Создаётся домашний каталог «/home/testuser2» ...
Копирование файлов из «/etc/skel» ...
Новый пароль:
Повторите ввод нового пароля:
passwd: пароль успешно обновлён
Изменение информации о пользователе testuser2
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
    Полное имя []: Test User 2
    Номер комнаты []: 2
    Рабочий телефон []: 122
    Домашний телефон []: 123
    Другое []: Nothing to comment too...
Данная информация корректна? [Y/n] y

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

$ sudo cat /etc/passwd | grep testuser2
testuser2:x:1001:1001:Test User 2,2,122,123,Nothing to comment too...:/home/testuser2:/bin/bash
$ ls -al /home | grep testuser2
drwxr-x--- 2 testuser2 testuser2 57 июн 27 14:53 testuser2
$ sudo cat /etc/group | grep testuser2
testuser2:x:1001:

Для полного удаления учетной записи пользователя следует воспользоваться параметрами --force и --remove-home:

$ sudo deluser --force --remove-home testuser2
Идёт поиск файлов для сохранения/удаления ...
Удаляются файлы ...
Удаляется пользователь «testuser2» ...
Предупреждение: в группе `testuser2' больше никого нет.
Готово.

В результате удалены учетная запись пользователя, его домашняя директория и одноименная группа пользователей:

$ sudo cat /etc/passwd | grep testuser2
$ ls -al /home | grep testuser2
$ sudo cat /etc/group | grep testuser2

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