Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Как удалить пользователя в Ubuntu 20.04: инструкция

Никита Кулижников
Никита Кулижников
Технический писатель
24 октября 2022 г.
4729
7 минут чтения
Средний рейтинг статьи: 5

Администратору сервера нередко приходится работать с учётными записями пользователей — добавлять, удалять, настраивать режим доступа. Удаление неактуальных учётных записей — одна из мер безопасности, которая значительно снизит количество уязвимостей в системе.

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

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

Большая часть статьи будет посвящена тому, как удалить пользователя в Ubuntu через терминал, но в конце мы также приведем инструкцию по удалению учётной записи через графический интерфейс.

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

Инструкции подойдут для любых облачных серверов, на которых предустановлена ОС Ubuntu.

Проверка учётной записи

Сперва нужно проверить, зашёл ли пользователь в систему. Это повлияет на дальнейшие шаги: в случае, если пользователь в текущий момент авторизован на сервере, понадобится разорвать его соединение и изменить пароль.

Проверяем список пользователей, авторизованных в системе, с помощью утилиты who, или её псевдонима w:

who

Если видим, что пользователь timeweb авторизован, нужно проверить, какие процессы запущены пользователем. Это необходимый шаг, поскольку, если в фоновом режиме выполняются операции, удалить пользователя Ubuntu 20.04 не позволит. Выполняем проверку с помощью утилиты ps:

sudo ps -u timeweb

В результате видим подобный ответ:

    PID TTY          TIME CMD
1297129 pts/2    00:00:00 bash
1297443 pts/2    00:00:00 htop

В тестовых целях мы запустили в учётной записи timeweb утилиту htop, которая работает в фоновом режиме. 

Блокировка доступа

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

Пароли пользователей хранятся в системе в зашифрованном виде, они расположены в файле /etc/shadow. Этот файл доступен для чтения только пользователю root, помимо хэшей паролей он содержит и их сроки действия.

Существует специальная утилита, благодаря которой можно в операционной системе Ubuntu удалить пароль пользователя, — passwd. Для ограничения доступа воспользуемся утилитой passwd с флагом -l (или --lock), который означает перевод работы утилиты в режим блокировки:

sudo passwd -l timeweb

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

Удаление процессов

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

  1. kill — удаление процесса по его идентификатору. Определить ID процессов пользователя timeweb можно с помощью команды top -U timeweb, или ps -u timeweb.
  2. pkill — удаление процесса по его имени. Так, например, мы видим, что пользователь timeweb запустил процесс top, значит можем завершить его командой: sudo pkill top.
  3. killall — удаление всех процессов, в том числе дочерних. Нередко случается, что в рамках одного процесса запускается множество так называемых подпроцессов, останавливать их по имени или идентификатору — сложная и трудоёмкая задача.

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

sudo killall -9 -u timeweb

Флаг 9 означает, что процессы получат сигнал SIGKILL. Это означает, что процесс будет жёстко завершён, поскольку этот сигнал нельзя игнорировать или заблокировать. По сути, это аналог «принудительного завершения» неотвечающей программы в операционных системах с графическим интерфейсом.

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

Опционально — архивируем домашний каталог

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

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

Место на диске. В домашнем каталоге пользователя может содержаться достаточно большой объём информации. Нерационально и избыточно хранить данные всех неактуальных учётных записей на основном рабочем диске, так со временем может случиться так, что не хватит места для новых пользователей. 

Актуальность данных. Хороший тон — иметь в каталоге /home набор директорий, который полностью соответствует активным учётным записям. Содержание в порядке списка рабочих каталогов поможет при администрировании.

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

sudo tar -cvjf /mnt/nobackup/timeweb.homedir.tar.gz /home/timeweb

Рассмотрим подробнее аргументы и флаги программы. 

  • -c — отвечает за создание итогового файла-архива с расширением .tar.
  • -v — отвечает за вывод отладочной информации и перечисление списка файлов, которые подлежат архивированию.
  • -z — отвечает за создание файла-архива с расширением .gz.
  • -f — указывает, что первый аргумент будет использоваться в качестве имени архива.

Первый аргумент — итоговое расположение архива. В нашем примере мы расположим архив с домашним каталогом пользователя на диске nobackup, который, как следует из названия, не подлежит резервному копированию.

Второй аргумент — путь к каталогу, из которого создаётся архив.

Остановка заданий планировщика

Перед тем, как удалить пользователя Ubuntu, рекомендуется остановить все задачи планировщика cron, запущенных этим пользователем. Это можно сделать командой crontab. Запустим её из-под пользователя timeweb с помощью флага -u, и переведём в режим удаления, передав флаг -r:

sudo crontab -r -u timeweb

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

Удаление пользователя

Когда все предыдущие шаги были выполнены, наступило время перейти к основной задаче — удалить пользователя Linux Ubuntu. Существует два способа сделать это: утилиты deluser и userdel

Для удаления учётной записи будем использовать утилиту deluser. Утилита без параметров удалит учётную запись пользователя, однако оставит домашний каталог и прочие файлы пользователя. Вы можете использовать следующие флаги:

  • --remove-home — как следует из названия, утилита удалит домашнюю директорию пользователя
  • --remove-all-files — утилита удалит все файлы системы, принадлежащие пользователю, включая домашний каталог
  • --backup — утилита создаст архив домашней директории и файлов почты и поместит его в корневой каталог системы. Для того, чтобы указать каталог для сохранения архива, используйте флаг --backup-to.

Как видно из описания параметров выше, шаг с ручным архивированием домашнего каталога пользователя вовсе необязательный — утилита deluser всё сделает за вас. Кроме того, с помощью deluser можно как удалить пользователя из группы Ubuntu, так и удалить саму группу:

sudo deluser timeweb administrators

Команда выше удаляет пользователя timeweb из группы administrators.

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

sudo deluser --remove-home timeweb

Удаление пользователя через графический интерфейс

Вся статья выше — о том, как удалить пользователя в терминале Ubuntu. Но если в вашем распоряжении система с графическим интерфейсом, удаление пользователя можно произвести в несколько простых действий. 

Откройте в «Параметрах системы» пункт «Пользователи». Для того, чтобы перейти в режим суперпользователя, нажмите на кнопку «Разблокировать». После этого кнопка «Удалить пользователя» станет активна, нажав её, вы увидите диалоговое окно с предложением удалить файлы пользователя, речь о домашнем каталоге.

Заключение

Удалить пользователя в операционной системе Ubuntu несложно, достаточно лишь воспользоваться утилитой deluser, указав все необходимые параметры. Однако в статье мы привели несколько шагов, которые помогут удалить учётную запись безопасно, сохранив стабильность работы системы.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону