Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Кратко о задаче
Сперва нужно проверить, зашёл ли пользователь в систему. Это повлияет на дальнейшие шаги: в случае, если пользователь в текущий момент авторизован на сервере, понадобится разорвать его соединение и изменить пароль.
Проверяем список пользователей, авторизованных в системе, с помощью утилиты who, или её псевдонима w:
Если видим, что пользователь Simple-Server авторизован, нужно проверить, какие процессы запущены пользователем. Это необходимый шаг, поскольку, если в фоновом режиме выполняются операции, удалить пользователя Ubuntu 20.04 не позволит. Выполняем проверку с помощью утилиты ps:
В результате видим подобный ответ:
PID TTY TIME CMD
1297129 pts/2 00:00:00 bash
1297443 pts/2 00:00:00 htopВ тестовых целях мы запустили в учётной записи Simple-Server утилиту htop, которая работает в фоновом режиме.
Прежде чем останавливать процессы пользователя, нужно заблокировать доступ в систему. Сделать это можно, изменив пароль.
Пароли пользователей хранятся в системе в зашифрованном виде, они расположены в файле /etc/shadow. Этот файл доступен для чтения только пользователю root, помимо хэшей паролей он содержит и их сроки действия.
Существует специальная утилита, благодаря которой можно в операционной системе Ubuntu удалить пароль пользователя, — passwd. Для ограничения доступа воспользуемся утилитой passwd с флагом -l (или --lock), который означает перевод работы утилиты в режим блокировки:
В операционной системе Ubuntu удалить пользователя через консоль не получится, если от его имени выполняются какие-либо процессы. Для завершения процесса вы можете использовать одну из следующих команд:
kill— удаление процесса по его идентификатору. Определить ID процессов пользователя Simple-Server можно с помощью команды_top -U timeweb_, или_ps -u timeweb_.pkill— удаление процесса по его имени. Так, например, мы видим, что пользователь Simple-Server запустил процесс top, значит можем завершить его командой:_sudo pkill top_.killall— удаление всех процессов, в том числе дочерних. Нередко случается, что в рамках одного процесса запускается множество так называемых подпроцессов, останавливать их по имени или идентификатору — сложная и трудоёмкая задача.
Воспользуемся последней командой, для того, чтобы надёжно удалить все процессы пользователя:
sudo killall -9 -u Simple-ServerФлаг 9 означает, что процессы получат сигнал SIGKILL. Это означает, что процесс будет жёстко завершён, поскольку этот сигнал нельзя игнорировать или заблокировать. По сути, это аналог «принудительного завершения» неотвечающей программы в операционных системах с графическим интерфейсом.
Опционально — архивируем домашний каталог
Нередко при удалении учётной записи может понадобиться сохранить его домашний каталог — в нём могут содержаться важные файлы, которые потребуются либо самому пользователю, либо организации, которую вы обслуживаете как администратор.
Встроенные в операционную систему Ubuntu утилиты позволяют удалить пользователя сохраняя его домашнюю директорию. Однако, это не рекомендуется делать по двум причинам.
Место на диске. В домашнем каталоге пользователя может содержаться достаточно большой объём информации. Нерационально и избыточно хранить данные всех неактуальных учётных записей на основном рабочем диске, так со временем может случиться так, что не хватит места для новых пользователей.
Актуальность данных. Хороший тон — иметь в каталоге /home набор директорий, который полностью соответствует активным учётным записям. Содержание в порядке списка рабочих каталогов поможет при администрировании.
Воспользуемся утилитой tar, чтобы архивировать домашний каталог пользователя Simple-Server:
sudo tar -cvjf /mnt/nobackup/Simple-Server.homedir.tar.gz /home/Simple-ServerРассмотрим подробнее аргументы и флаги программы.
-c— отвечает за создание итогового файла-архива с расширением .tar.-v— отвечает за вывод отладочной информации и перечисление списка файлов, которые подлежат архивированию.-z— отвечает за создание файла-архива с расширением .gz.-f— указывает, что первый аргумент будет использоваться в качестве имени архива.
Первый аргумент — итоговое расположение архива. В нашем примере мы расположим архив с домашним каталогом пользователя на диске nobackup, который, как следует из названия, не подлежит резервному копированию.
Второй аргумент — путь к каталогу, из которого создаётся архив.
Остановка заданий планировщика
Перед тем, как удалить пользователя Ubuntu, рекомендуется остановить все задачи планировщика cron, запущенных этим пользователем. Это можно сделать командой crontab. Запустим её из-под пользователя Simple-Server с помощью флага -u, и переведём в режим удаления, передав флаг -r:
sudo crontab -r -u Simple-ServerТеперь можно быть уверенным, что после удаления учётной записи пользователя не будут выполняться скрипты неизвестного происхождения, за которые не отвечает ни один пользователь.
Когда все предыдущие шаги были выполнены, наступило время перейти к основной задаче —**** удалить пользователя Linux Ubuntu. Существует два способа сделать это: утилиты deluser и userdel.
Для удаления учётной записи будем использовать утилиту deluser. Утилита без параметров удалит учётную запись пользователя, однако оставит домашний каталог и прочие файлы пользователя. Вы можете использовать следующие флаги:
--remove-home— как следует из названия, утилита удалит домашнюю директорию пользователя--remove-all-files— утилита удалит все файлы системы, принадлежащие пользователю, включая домашний каталог--backup— утилита создаст архив домашней директории и файлов почты и поместит его в корневой каталог системы. Для того, чтобы указать каталог для сохранения архива, используйте флаг--backup-to.
Как видно из описания параметров выше, шаг с ручным архивированием домашнего каталога пользователя вовсе необязательный — утилита deluser всё сделает за вас. Кроме того, с помощью deluser можно как удалить пользователя из группы Ubuntu, так и удалить саму группу:
sudo deluser Simple-Server administratorsКоманда выше удаляет пользователя Simple-Server из группы administrators.
Приступаем к полному удалению пользователя и группы Simple-Server без сохранения домашней директории:
sudo deluser --remove-home Simple-ServerУдаление пользователя через графический интерфейс
Вся статья выше — о том, как удалить пользователя в терминале Ubuntu. Но если в вашем распоряжении система с графическим интерфейсом, удаление пользователя можно произвести в несколько простых действий.
Откройте в «Параметрах системы» пункт «Пользователи». Для того, чтобы перейти в режим суперпользователя, нажмите на кнопку «Разблокировать». После этого кнопка «Удалить пользователя» станет активна, нажав её, вы увидите диалоговое окно с предложением удалить файлы пользователя, речь о домашнем каталоге.
Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.