Linux: удаление аккаунта пользователя

Автор: | 15/08/2011
 

Как закрыть пользователю доступ к серверу? Как удалить аккаунт пользователя в операционной системе Linux?

Для этого необходимо воспользоваться командой userdel. Запускать её надо под правами суперпользователя root. Ниже приведен синтаксис команды.

# userdel user

Примеры userdel

Для удаления пользователя user из системы введите:

# userdel user

Для удаления домашнего каталога добавьте ключ -r:

# userdel -r user

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

Примечания к файлу /etc/login.defs

В системах RHEL (Red Hat) значения по-умолчанию указываются в файле /etc/login.defs. В дистрибутивах, основанных на Debian и Ubuntu Linux используется файл /etc/deluser.conf:

  • Удаление домашней директории и настроек почты – REMOVE_HOME = 0
  • Удалить все файлы пользователя в системе – REMOVE_ALL_FILES = 0
  • Сделать резервную копию всех файлов пользователя перед удалением. Эта опция доступна только если установлена опция REMOVE_HOME или REMOVE_ALL_FILESBACKUP = 0
  • Каталог для хранения резервной копии файлов пользователя – BACKUP_TO = “.”
  • Удалить группу пользователя, даже если в ней есть другие пользователи – ONLY_IF_EMPTY = 0
  • Исключить системные типы файлов во время поиска файлов для создания резервной копии – EXCLUDE_FSTYPES = “(proc|sysfs|usbfs|devpts|tmpfs)”

Пример полного удаления

Ниже приведен пример пример процедуры полного удаления пользователя user с сервера. Для начала, заблокируйте пользователя:

# passwd -l user

Сделайте резервную копию файлов пользователя user в каталог резервных копий:

# tar -zcvf /nas/backup/account/deleted/v/user.$uid.$now.tar.gz /home/vivek/

Замените значения $uid и $now на ваши актуальные значения UID и даты выполнения операции.

Команда userdel не позволит вам удалить акант пользователя, если он сам или процессы от его имени в данный момент есть в системе. Необходимо убить все процессы, запущенные от его имени. Для этого введите:

# pgrep -u user
# ps -fp $(pgrep -u user)
# killall -KILL -u user

Для удаления аканта пользователя user введите:

# userdel -r user

Для удаления задач из списка jobs утилиты at:

# find /var/spool/at/ -name “[^.]*” -type f -user user -delete

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

# crontab -r -u user

Для удаления задач пользователя user из очереди на печать введите:

# lprm user

Для поиска всех файлов, владельцем которых является пользователь user введите:

# find / -user user -print

Можно найти все файлы пользователя user и изменить их владельца таким образом:

# find / -user user -exec chown newUserName:newGroupName {} ;