userdel(8)

НАЗВАНИЕ
userdel - удаляет учётную запись и файлы пользователя

СИНТАКСИС

userdel [параметры] УЧЁТНАЯ_ЗАПИСЬ

ОПИСАНИЕ

Команда userdel изменяет системные файлы учётных записей, удаляя все записи, относящиеся к указанному имени_пользователя. Заданная учётная запись должна существовать.

ПАРАМЕТРЫ

Параметры команды userdel:

-f, --force
    С этим параметром учётная запись будет удалена, даже если пользователь в этот момент работает в системе. Он также заставляет userdel удалить домашний каталог пользователя и почтовый ящик, даже если другой пользователь использует тот же домашний каталог или если почтовый ящик не принадлежит данному пользователю. Если значение USERGROUPS_ENAB равно yes в файле /etc/login.defs и если существует группа с именем удаляемого пользователя, то это группа будет удалена, даже если она всё ещё является первичной группой другого пользователя.

    Замечание: Этот параметр опасно использовать; он может привести систему в нерабочее состояние.

-h, --help
    Показать краткую справку и закончить работу.

-r, --remove
    Файлы в домашнем каталоге пользователя будут удалены вместе с самим домашним каталогом и почтовым ящиком. Пользовательские файлы, расположенные в других файловых системах, нужно искать и удалять вручную.

    Имя файла почтового ящика задаётся переменной MAIL_DIR в файле login.defs.

-R, --root КАТ_CHROOT
    Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT.

-P, --prefix PREFIX_DIR
    Apply changes in the PREFIX_DIR directory and use the configuration files from the PREFIX_DIR directory. This option does not chroot and is intended for preparing a cross-compilation target. Some limitations: NIS and LDAP users/groups are not verified. PAM authentication is using the host files. No SELINUX support.

-Z, --selinux-user
    Удаляет все пользовательские сопоставления SELinux для учётной записи пользователя.

НАСТРОЙКА

На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

MAIL_DIR (строка)
    Почтовый каталог. Данный параметр нужен для управления почтовым ящиком при изменении или удалении учётной записи пользователя. Если параметр не задан, то используется значение указанное при сборке.

MAIL_FILE (строка)
    Определяет расположение почтовых файлов пользователя относительно домашнего каталога.

Переменные MAIL_DIR и MAIL_FILE используются командами useradd, usermod и userdel для создания, перемещения или удаления почты пользователя.

Если значение MAIL_CHECK_ENAB равно yes, то они также используются для определения переменной окружения MAIL.

MAX_MEMBERS_PER_GROUP (число)
    Максимальное количество членов в записи о группе. При достижения максимума заводится новая запись группы (строка) в /etc/group (с тем же именем, паролем и тем же GID).

    Значение по умолчанию равно 0, означающее, что ограничения на количество членов в группе нет.

    Данная возможность (разделение группы) позволяет ограничить длину строк в файле групп. Это полезно для ограничения длины строк групп NIS в 1024 символа.

    Если вам нужно такое ограничение, укажите значение 25.

    Замечание: разделение групп поддерживается не всеми инструментами (даже в наборе инструментов Shadow). Вы не должны использовать эту переменную, если вам действительно это ненужно.

USERDEL_CMD (строка)
    Определяет программу, которая будет запущена при удалении пользователя. Она должна удалять любые задания at/cron/печати удаляемого пользователя (передаётся в качестве первого аргумента).

    Возвращаемый сценарием код завершения не учитывается.

    Вот простой сценарий, который удаляет задания печати, cron и at:

        #! /bin/sh

        # проверить все необходимые параметры
        if [ $# != 1 ]; then
        	echo "Использование: $0 имя_пользователя"
        	exit 1
        fi

        # удалить задания cron
        crontab -r -u $1

        # удалить задания at
        # Заметим, что это удалит все задания с указанным UID,
        # даже если он используется для другой учётной записи.
        AT_SPOOL_DIR=/var/spool/cron/atjobs
        find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;

        # удалить задания печати
        lprm $1

        # всё
        exit 0

USERGROUPS_ENAB (логический)
    Включает установку группы битов umask равной битам владельца (пример: 022 -> 002, 077 -> 007) для не суперпользователей, если uid равен gid и имя пользователя совпадает с именем первичной группы.

    Если значение равно yes, то userdel удаляет пользовательскую группу, если в ней нет больше членов, а useradd по умолчанию создаёт группу с именем пользователя.

ФАЙЛЫ

/etc/group
    содержит информацию о группах

/etc/login.defs
    содержит конфигурацию подсистемы теневых паролей

/etc/passwd
    содержит информацию о пользователях

/etc/shadow
    содержит защищаемую информацию о пользователях

/etc/subgid
    Per user subordinate group IDs.

/etc/subuid
    Per user subordinate user IDs.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

Команда userdel завершая работу, возвращает следующие значения:

0
    успешное выполнение

1
    не удалось изменить файл паролей

2
    ошибка в параметрах команды

6
    указанный пользователь не существует

8
    пользователь сейчас работает в системе

10
    не удалось изменить файл групп

12
    не удалось удалить домашний каталог

ПРЕДОСТЕРЕЖЕНИЯ

Команда userdel не позволит удалить учётную запись, если есть запущенные процессы, принадлежащие данной учётной записи. В этом случае вы можете удалить эти процессы или заблокировать пароль пользователя или учётную запись, а затем удалить учётную запись. Если указан параметр -f, то учётная запись будет удалена несмотря ни на что.

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

Нельзя удалить NIS атрибуты клиента NIS. Это необходимо сделать на NIS сервере.

Если значение переменной USERGROUPS_ENAB равно yes в файле /etc/login.defs, то userdel удалит группу с именем как у пользователя. Чтобы избежать рассогласованности в базах данных групп и паролей, userdel проверит, что данная группа не используется в качестве первичной для другого пользователя, и выдаст предупреждение без удаления, если такое случится. Параметр -f поможет удалить группу в любом случае.

СМОТРИТЕ ТАКЖЕ

chfn(1), chsh(1), passwd(1), login.defs(5), gpasswd(8), groupadd(8), groupdel(8), groupmod(8), subgid(5), subuid(5), useradd(8), usermod(8).