Как удалить пользователя в Linux (и удалить все его «хвосты»)
Удаление пользователя в Linux требует большего, чем вы думаете. Если вы системный администратор, вам нужно удалить все следы учётной записи и доступа к ней из своих систем. Мы покажем вам, что нужно сделать.
Если вы просто хотите удалить учётную запись пользователя из своей системы и не беспокоитесь о завершении каких-либо запущенных процессов и других задачах очистки, выполните действия, описанные в разделе «Удаление учётной записи пользователя» ниже. Вам понадобится команда userdel (у этой команды есть альтернатива deluser). Команду userdel необходимо запускать в Linux от имени пользователя root.
Учётные записи пользователей в Linux
С тех пор как в начале 1960-х годов появились первые системы разделения времени, которые дали возможность нескольким пользователям работать на одном компьютере, возникла необходимость изолировать и отделить файлы и данные каждого пользователя от всех остальных пользователей. Так родились учётные записи пользователей и пароли.
Учётные записи пользователей связаны с работой системного администратора. Их нужно создавать, когда пользователю впервые нужен доступ к компьютеру. Их необходимо удалить, когда этот доступ больше не требуется. В Linux существует последовательность шагов, которые необходимо выполнить, чтобы правильно и методично удалить пользователя, его файлы и его учётную запись с компьютера.
Если вы системный администратор, то ответственность ложится на вас. Эта статья расскажет, как это сделать.
Наш сценарий
Существует множество причин, по которым может потребоваться удаление аккаунта. Сотрудник может перейти в другую команду или вообще покинуть компанию. Учётная запись могла быть создана для краткосрочного сотрудничества с посетителем из другой компании. Команды — обычное дело в академических кругах, где исследовательские проекты могут охватывать факультеты, разные университеты и даже коммерческие организации. По завершении проекта системный администратор должен выполнить уборку и удалить ненужные учётные записи.
Худший сценарий — это когда учётная запись используется для несанкционированной деятельности. Такие события обычно происходят внезапно, без особого предупреждения. Это даёт системному администратору очень мало времени на планирование и срочную необходимость заблокировать, закрыть и удалить учётную запись оставив резервную копию файлов пользователя на случай, если они понадобятся для любой последующей криминалистической экспертизы.
В нашем сценарии мы предположим, что пользователь Эрик, сделал что-то, что требует его немедленного удаления из помещения. При этом в данный момент он выполнил вход в Linux и всё ещё работает.
Проверка входа
Давайте посмотрим, действительно ли он вошёл в систему, и если он есть в ней, то с каким количеством сессий он работает. Команда who выведет список активных сеансов.
Эрик авторизован. Посмотрим, какие процессы он запускает.
Просмотр процессов пользователя
Мы можем использовать команду ps для вывода списка процессов, запущенных этим пользователем. Параметр -u (пользователь) позволяет нам указать ps ограничить его вывод процессами, выполняемыми под владельцем этой учётной записи.
Мы можем увидеть те же процессы с дополнительной информацией, используя команду top. top также имеет опцию -U (пользователь), чтобы ограничить вывод процессами, принадлежащими одному пользователю. Обратите внимание, что на этот раз это заглавная буква «U».
Мы можем видеть использование памяти и ЦП каждой задачей и можем быстро найти что-либо с подозрительной активностью. Мы собираемся принудительно завершить все его процессы, поэтому безопаснее всего воспользоваться моментом, чтобы быстро просмотреть процессы, а также проверить и убедиться, что другие пользователи не будут испытывать неудобств, если вы завершите процессы учётной записи пользователя eric.
Не похоже, что он немного что делает, просто использует less для просмотра файла. Мы можем продолжить. Но прежде чем мы убьём его процессы, мы заблокируем учётную запись, заблокировав пароль.
Блокировка учётной записи
Мы заблокируем учётную запись, прежде чем убивать процессы, потому что, когда мы убиваем процессы, это приведёт к выходу пользователя из системы. Если мы уже изменили его пароль, он не сможет снова войти в систему.
Зашифрованные пароли пользователей хранятся в файле /etc/shadow. Обычно вы не беспокоитесь о следующих шагах, но чтобы вы могли видеть, что происходит в файле /etc/shadow, когда вы блокируете учётную запись, мы чуть отклонимся от темы. Мы можем использовать следующую команду, чтобы просмотреть первые два поля записи для учётной записи пользователя eric.
Команда awk анализирует поля из текстовых файлов и при необходимости манипулирует ими. Мы используем параметр -F (разделитель полей), чтобы указать awk, что файл использует двоеточие «:» для разделения полей. Мы будем искать строку включающей «eric». Для сопоставления строк мы напечатаем первое и второе поля. Это имя учётной записи и зашифрованный пароль (точнее говоря, это хеш пароля).
Для нас напечатана запись для учётной записи пользователя eric.
Чтобы заблокировать учётную запись, мы используем команду passwd. Мы воспользуемся параметром -l (блокировка) и передадим имя учётной записи пользователя для блокировки.
Если мы ещё раз проверим файл /etc/shadow, мы увидим, что произошло.
В начале зашифрованного пароля добавлен восклицательный знак. Он не перезаписывает первый символ, он просто добавляется в начало пароля. Это всё, что нужно, чтобы пользователь не мог войти в эту учётную запись.
Теперь, когда мы предотвратили повторный вход пользователя в систему, мы можем убить его процессы и выйти из системы.
Остановка процессов пользователя
Есть разные способы убить процессы пользователя, но показанная здесь команда широко доступна и является более современной реализацией, чем некоторые из альтернатив. Команда pkill найдёт и завершит процессы. Мы передаём сигнал KILL и используем параметр -u (пользователь).
Команда ничего не вывела. Чтобы убедиться, что что-то произошло, давайте ещё раз проверим командой who:
Его сеанс закончился. Он вышел из системы, и его процессы остановлены. Теперь мы можем немного расслабиться и продолжить зачистку.
Архивирование домашнего каталога пользователя
Не исключено, что в подобном сценарии в будущем потребуется доступ к файлам пользователя. Либо в рамках расследования, либо просто потому, что их замене, возможно, придётся обратиться к работе их предшественника. Мы будем использовать команду tar для архивации всего домашнего каталога.
Мы используем следующие опции:
- c: создать архивный файл.
- f: использовать указанное имя файла в качестве имени архива.
- j: использовать сжатие bzip2.
- v: Предоставлять подробный вывод при создании архива.
Большая часть вывода на экран будет прокручиваться в окне терминала. Чтобы проверить, создан ли архив, используйте команду ls. Мы используем параметры -l (длинный формат) и -h (удобочитаемый).
Создан файл размером 722 МБ. Его можно скопировать в безопасное место для последующего просмотра.
Удаление заданий cron
Нам лучше проверить, не запланированы ли какие-либо задания cron для учётной записи пользователя eric. Задание cron — это команда, которая запускается через определённое время или через определённые промежутки времени. Мы можем проверить, есть ли какие-либо задания cron для этой учётной записи пользователя, используя ls:
Обратите внимание, что задания cron в Debian и производных дистрибутивах помещены в папку вида «/var/spool/cron/crontabs/ПОЛЬЗОВАТЕЛЬ». В Arch Linux и производных дистрибутивах эти задания помещены в папку вида «/var/spool/cron/ПОЛЬЗОВАТЕЛЬ».
Если что-то существует в этом месте, это означает, что для этой учётной записи пользователя поставлены в очередь задания cron. Мы можем удалить их с помощью этой команды crontab. Параметр -r (удалить) удаляет задания, а параметр -u (пользователь) сообщает crontab, чьи задания следует удалить.
Задания автоматически удаляются. Насколько нам известно, если бы Эрик подозревал, что его собираются выселить, он мог бы добавить в расписание злонамеренную задачу. Не стоит пренебрегать этим шагом.
Удаление заданий на печать
Возможно, у пользователя были отложенные задания на печать? На всякий случай мы можем очистить очередь печати от любых заданий, принадлежащих учётной записи пользователя eric. Команда lprm удаляет задания из очереди печати. Параметр -U (имя пользователя) позволяет удалять задания, принадлежащие указанной учётной записи пользователя:
Задания будут удалены, и вы вернётесь в командную строку.
Удаление учётной записи пользователя
Мы уже создали резервные копии файлов из каталога /home/eric/, поэтому мы можем продолжить и одновременно удалить учётную запись пользователя и каталог /home/eric/.
Имеется две разных команды с одинаковыми функциями: userdel и deluser. Проверьте, какая из них присутствует в вашей системе. На проверенных мной дистрибутивах всегда присутствовала userdel, поэтому я покажу на её примере, как на более универсальной утилите.
Поскольку мы также хотим, чтобы их домашний каталог был удалён, мы используем флаг —remove:
Можно добавить опцию -f для принудительного удаления файлов, даже если они не принадлежат указанному пользователю:
Все следы учётной записи пользователя eric были стёрты. Мы можем проверить, что каталог /home/eric/ был удалён:
Группа eric также была удалена, поскольку учётная запись пользователя eric была единственной записью в ней. Мы можем довольно легко это проверить, передав содержимое /etc/group через grep:
Чтобы найти все файлы пользователя eric, выполните команду:
Вы можете найти файлы пользователя eric и поменять разрешения на них следующим образом:
How to Add and Delete Users on Ubuntu 20.04

Adding and removing users on a Linux system is one of the most important system administration tasks to familiarize yourself with. When you create a new system, you are often only given access to the root account by default.
While running as the root user gives you complete control over a system and its users, it is also dangerous and possibly destructive. For common system administration tasks, it’s a better idea to add an unprivileged user and carry out those tasks without root privileges. You can also create additional unprivileged accounts for any other users you may have on your system. Each user on a system should have their own separate account.
For tasks that require administrator privileges, there is a tool installed on Ubuntu systems called sudo . Briefly, sudo allows you to run a command as another user, including users with administrative privileges. In this guide, you’ll learn how to create user accounts, assign sudo privileges, and delete users.
Prerequisites
To complete this tutorial, you will need access to a server running Ubuntu 20.04. Ensure that you have root access to the server and firewall enabled. To set this up, follow our Initial Server Setup Guide for Ubuntu 20.04.
Adding a User
If you are signed in as the root user, you can create a new user at any time by running the following:
If you are signed in as a non-root user who has been given sudo privileges, you can add a new user with the following command:
Either way, you will be required to respond to a series of questions:
- Assign and confirm a password for the new user.
- Enter any additional information about the new user. This is optional and can be skipped by pressing ENTER if you don’t wish to utilize these fields.
- Finally, you’ll be asked to confirm that the information you provided was correct. Press Y to continue.
Your new user is now ready for use and can be logged into with the password that you entered.
If you need your new user to have administrative privileges, continue on to the next section.
Granting a User Sudo Privileges
If your new user should have the ability to execute commands with root (administrative) privileges, you will need to give the new user access to sudo . Let’s examine two approaches to this task: first, adding the user to a pre-defined sudo user group, and second, specifying privileges on a per-user basis in sudo ’s configuration.
Adding the New User to the Sudo Group
By default, sudo on Ubuntu 20.04 systems is configured to extend full privileges to any user in the sudo group.
You can view what groups your new user is in with the groups command:
By default, a new user is only in their own group because adduser creates this in addition to the user profile. A user and its own group share the same name. In order to add the user to a new group, you can use the usermod command:
The -aG option tells usermod to add the user to the listed groups.
Please note that the usermod command itself requires sudo privileges. This means that you can only add users to the sudo group if you’re signed in as the root user or as another user that has already been added as a member of the sudo group. In the latter case, you will have to precede this command with sudo , as in this example:
Specifying Explicit User Privileges in /etc/sudoers
As an alternative to putting your user in the sudo group, you can use the visudo command, which opens a configuration file called /etc/sudoers in the system’s default editor, and explicitly specify privileges on a per-user basis.
Using visudo is the only recommended way to make changes to /etc/sudoers because it locks the file against multiple simultaneous edits and performs a validation check on its contents before overwriting the file. This helps to prevent a situation where you misconfigure sudo and cannot fix the problem because you have lost sudo privileges.
If you are currently signed in as root, run the following:
If you are signed in as a non-root user with sudo privileges, run the same command with the sudo prefix:
Traditionally, visudo opened /etc/sudoers in the vi editor, which can be confusing for inexperienced users. By default on new Ubuntu installations, visudo will use the nano text editor, which provides a more convenient and accessible text editing experience. Use the arrow keys to move the cursor, and search for the line that reads like the following:
Below this line, add the following highlighted line. Be sure to change newuser to the name of the user profile that you would like to grant sudo privileges:
Add a new line like this for each user that should be given full sudo privileges. When you’re finished, save and close the file by pressing CTRL + X , followed by Y , and then ENTER to confirm.
Testing Your User’s Sudo Privileges
Now your new user is able to execute commands with administrative privileges.
When signed in as the new user, you can execute commands as your regular user by typing commands as normal:
You can execute the same command with administrative privileges by typing sudo ahead of the command:
When doing this, you will be prompted to enter the password of the regular user account you are signed in as.
Deleting a User
In the event that you no longer need a user, it’s best to delete the old account.
You can delete the user itself, without deleting any of their files, by running the following command as root:
If you are signed in as another non-root user with sudo privileges, you would use the following:
If, instead, you want to delete the user’s home directory when the user is deleted, you can issue the following command as root:
If you’re running this as a non-root user with sudo privileges, you would run the same command with the sudo prefix:
If you previously configured sudo privileges for the user you deleted, you may want to remove the relevant line again:
Or use the following command if you are a non-root user with sudo privileges:
This will prevent a new user created with the same name from being accidentally given sudo privileges.
Conclusion
You should now have a fairly good handle on how to add and remove users from your Ubuntu 20.04 system. Effective user management will allow you to separate users and give them only the access that they are required to do their job.
For more information about how to configure sudo , check out our guide on how to edit the sudoers file.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Как удалить пользователя в Linux
В этой инструкции мы рассмотрим как удалить пользователя Linux вместе с его данными и домашним каталогом. Если вы системный администратор в крупной компании то, скорее всего, удаление пользователей Linux для вас довольно частая задача. После того как аккаунт становится ненужным или пользователь ушел из организации, его аккаунт нужно удалить, чтобы не оставлять дыр в безопасности.
При удалении пользователей Linux также важно удалить их домашний каталог, чтобы освободить место на устройстве хранения для новых пользователей и их файлов. Сначала мы рассмотрим как удалить пользователя Linux с помощью терминала, потом поговорим о том, как это делается в графическом интерфейсе одного из самых популярных дистрибутивов — Ubuntu.
Что нам понадобится?
Перед тем как переходить к действиям в реальной среде нужно немного попрактиковаться, давайте создадим два пользователя losst и losst1, вместе с домашними каталогами, а затем уже будем их удалять:
adduser losst passwd losst
adduser losst1 passwd losst1

Здесь команда adduser используется для создания учетной записи пользователя, а passwd для создания пароля.
Удаление пользователя Linux в терминале
Давайте рассмотрим, как удалить пользователя Linux в терминале. Для этого используется команда — deluser в Debian и производных системах, а в RHEL — userdel. Рассмотрим подробнее эти две утилиты.
Описание deluser
Синтаксис команды deluser очень простой:
$ deluser параметры пользователь
Настройки команды deluser находятся в файле /etc/deluser.conf, среди прочих настроек там указанно что нужно делать с домашней папкой и файлами пользователя. Вы можете посмотреть и изменить эти настройки выполнив команду:
Рассмотрим подробнее эти настройки:
- REMOVE_HOME — удалять домашний каталог пользователя
- REMOVE_ALL_FILES — удалить все файлы пользователя
- BACKUP — выполнять резервное копирование файлов пользователя
- BACKUP_TO — папка для резервного копирования
- ONLY_IF_EMPTY — удалить группу пользователя если она пуста.
Эти настройки определяют поведение утилиты по умолчанию, когда выполняется удаление пользователя, конечно, их можно переопределить используя параметры для команды.
Поддерживаются такие параметры, они аналогичны настройкам, но тут больше вариантов:
- —system — удалять только если это системный пользователь
- —backup — делать резервную копию файлов пользователя
- —backup-to — папка для резервных копий
- —remove-home — удалять домашнюю папку
- —remove-all-files — удалять все файлы пользователя в файловой системе
Описание userdel
Утилита userdel работает немного по-другому, файла настроек здесь нет, но есть опции, с помощью которых можно сообщить утилите что нужно сделать. Синтаксис аналогичный:
$ userdel параметры пользователь
- -f, —force — принудительное удаление, даже если пользователь еще залогинен.
- -r, —remove — удалить домашнюю директорию пользователя и его файлы в системе.
- -Z — удалить все SELinux объекты для этого пользователя.
Для удаления пользователя с сервера лучше использовать расширенный способ, который мы рассмотрим ниже. Когда пользователи используют сервер, они запускают различные программы и сервисы. Пользователь может быть правильно удален, только если он не залогинен на сервере и все программы, запущенные от его имени остановлены, ведь программы могут использовать различные файлы, принадлежащие пользователю, а это помешает их удалить. Соответственно тогда файлы пользователя будут удаленны не полностью и останутся засорять систему.
Блокировка учетной записи пользователя
Для блокировки учетной записи пользователя можно использовать утилиту passwd. Это запретит пользователю доступ к системе и предотвратит запуск новых процессов. Выполните команду passwd с параметром —lock:
passwd —lock losst

Уничтожить все запущенные процессы пользователя
Теперь давайте найдем все запущенные от имени пользователя процессы и завершим их. Найдем процессы с помощью pgrep:
Посмотреть подробнее, что это за процессы можно передав pid, каждого из них в команду ps, вот так:
ps -f —pid $(pgrep -u losst)

Теперь, когда вы убедились, что там нет ничего важного, можно уничтожить все процессы с помощью команды killall:
Killall -9 -u losst
Опция -9 говорит программе, что нужно отправить этим процессам сигнал завершения SIGKILL, а -u задает имя пользователя.
В основанных на Red Hat системах, для использования killall необходимо будет установить пакет psmisc:
sudo yum install psmisc
Резервное копирование данных пользователя
Это вовсе не обязательно, но для серьезного проекта не будет лишним создать резервную копию файлов пользователя, особенно если там могли быть важные файлы. Для этого можно использовать, например, утилиту tar:
tar jcvf /user-backups/losst-backup.tar.bz2 /home/losst
Удаление учетной записи пользователя
Теперь, когда все подготовлено, начинаем удаление пользователя linux. На всякий случай укажем явно, что нужно удалять файлы пользователя и домашнюю директорию. Для Debian:
deluser —remove-home losst
userdel —remove losst
Если нужно удалить все файлы, принадлежащие пользователю в системе используйте опцию —remove-all-files, только будьте с ней осторожны, так и важные файлы можно затереть:
deluser —remove-all-files losst
Теперь пользователь полностью удален, вместе со своими файлами и домашней директорией из вашей системы.
Удаление пользователя в Ubuntu
Как я и говорил, дальше рассмотрим как удалить пользователя в Ubuntu с помощью графического интерфейса. Это намного проще того, что было описано выше, но менее эффективнее.
Откройте Параметры системы:

Откройте пункт Пользователи:

Как видите, сейчас все действия недоступны, и нарисованы серым цветом. Чтобы их активировать нажмите кнопку Разблокировать и введите пароль пользователя.

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

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

Естественно, будет удаленна только домашняя папка, обо всех файлах речь не идет. И для корректного удаления пользователь должен быть не залогинен в системе.
Выводы
Удалить пользователя в Linux не так уж сложно, независимо от того где это нужно сделать, на сервере или домашнем компьютере. Конечно, графический интерфейс более удобен, но в терминал, как всегда, предлагает больше возможностей. Если у вас есть еще какие-нибудь идеи по этому поводу, напишите в комментариях!
Похожие записи
Оцените статью
alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
10 комментариев к “Как удалить пользователя в Linux”
очень хороший сайт,и,что самое главное,полезный!
Здравствуйте! Вопрос не совсем по теме, но при вводе команды w, мне сообщают что в системе два пользователя. Ниже говориться кто они, вижу только себя, имя второго не сообщается, как узнать кто второй?
ЗЫ Только я имею доступ к этому серверу, захожу по ssh (putty), который слушает только локальную сеть.
Немного некропостинга. Второй пользователь — вероятнее всего root.
В ОС Windows всё сделать легко и просто, а вот с Linux я замучился -)
Привет! У меня армбиан, если я удалю того пользователя который логинется в графической оболочке автоматически, что произойдёт ? Как мне сменить пользователя который входит автоматом? ( я не знаю от него пароль но знаю пароль рута)
Всё правильно. Линукс не для всех.
Линукс для тех, кто хочет получать большего от операционной системы. Линукс для тех, кому мало одной кнопки «Сделай мне красиво». Линукс для тех, кому интересно знать как оно всё устроено и работает. Линукс хорош тем, что пользователь САМ определяет политику работы операционной системы. Пользователь сам перед собой несёт ответственность за работоспособность системы. Довольны все.
Виндовс для тех, у кого нет ни желания, ни необходимости лезть в тонкие настройки операционной системы. Виндовс для тех, кто далёк от компьютерной техники, но вынужден её использовать. Виндовс — это сильно прикрытый от пользователя ящик. Ящик, который настраивается и поддерживается в рабочем состоянии известной Корпорацией. А чтобы пользователь не лез куда не надо, чтобы не было конфликтных ситуаций между настройками пользователя и настройками Корпорации, эта Корпорация пользователя всячески и серьёзно ограничивают. Только таким образом, коммерческая Корпорация, основная цель которой извлечение максимальной прибыли, может гарантировать пользователю работоспособность своей операционной системы на его компе. При такой политике у пользователя не будет ни каких юридических прав востребовать компенсацию убытков, понесённых из-за неработоспособности операционной системы, с Корпорации. Собственно, пользователь Виндовс за то и платит деньги, чтобы самому не разбираться в работе операционной системы. Довольны все — и пользователь (получил удовольствие от того, что не вникает с в суть проблем), и Корпорация (получила деньги).
Руслан, а Вы не ошиблись с выбором операционной системы?
1. если я удалю того пользователя который логинется в графической оболочке автоматически, что произойдёт ?
Если Вы удалите учётную запись, пользователь никак не сможет попасть в систему — хоть через консоль, хоть графическую консоль. Для операционной системы не имеет значения как пользователь заходит (регистрируется) в систему. Для неё важно чтобы имелась учётная запись и был правильно набран пароль.
2. Как мне сменить пользователя который входит автоматом?
Я, не знаком с дистрибутивом armbian, поэтому точного ответа дать не могу. Когда-то давно я пользовался Ubuntu, там тоже была такая возможность как вход в систему автоматически (без указания пароля) для одного пользователя, которого можно было выбрать из списка. Эта настройка была где-то в главном меню Система\Параметры\Вход в систему. Как-то так она называлась. Точно не помню. Думаю, Вам следует посмотреть тут. Там не с ложно. Просто нужно указать в списке другого пользователя.