Как удалить домашнюю директорию пользователя linux
Перейти к содержимому

Как удалить домашнюю директорию пользователя linux

  • автор:

How to Delete User Accounts with Home Directory in Linux

In this tutorial, I am going to take your through steps you can use to delete a user’s account together with his/her home directory on a Linux system.

Delete User Accounts with Home Directory in Linux

To learn how to create user accounts and manage them on Linux systems, read the following articles from the links below:

As a System Administrator in Linux, you may have to remove users account at after sometime when a user account may become dormant for so long, or user may leave the organization or company or any other reasons.

When removing user accounts on a Linux system, it is also important to remove their home directory to free up space on the storage devices for new system users or other services.

Deleting/Removing a User Account with His/Her Home Directory

1. For demonstration purpose, first I will start by creating two user accounts on my system that is user tecmint and user linuxsay with their home directories /home/tecmint and /home/linusay respectively using adduser command.

Create New User Accounts in Linux

From the screenshot above, I have used the adduser command to create user accounts on Linux. You can also use useradd command, both are same and does the same job.

2. Let’s now move further to see how to delete or remove user accounts in Linux using deluser (For Debian and it’s derivatives) and userdel (For RedHat/CentOS based systems) command.

The directives inside the configuration file for deluser and userdel commands determine how this it will handle all user files and directory when you run the command.

Let us look at the configuration file for the deluser command which is /etc/deluser.conf on Debian derivatives such as Ubuntu, Kali, Mint and for RHEL/CentOS/Fedora users, you can view the /etc/login.defs files.

The values in the these configuration are default and can be changed as per your needs.

3. To delete a user with home directory, you can use the advanced way by following these steps on your Linux server machine. When users are logged on to the server, they use services and run different processes. It is important to note that user can only be deleted effectively when they are not logged on to the server.

Lock User Accounts in Linux

Start by locking the user account password so that there is no access for the user to the system. This will prevent a user from running processes on the system.

The passwd command including the –lock option can help you achieve this:

Lock User Account Password in Linux

Find and Kill All Running Processes of User

Next find out all running processes of user account and kill them by determine the PIDs (Process IDs) of processes owned by the user using:

Then you can list the processes interms of username, PIDs, PPIDs (Parent Process IDs), terminal used, process state, command path in a full formatting style with the help of following command as shown:

Find All Running Processes of User

Once you find all the running processes of user, you can use the killall command to kill those running processes as shown.

The -9 is the signal number for the SIGKILL signal or use -KILL instead of -9 and -u defines username.

Note: In recent releases of RedHat/CentOS 7.x versions and Fedora 21+, you will get error message as:

To fix such error, you need to install psmisc package as shown:

Backup User Data Before Deleting

Next you can backup users files, this can be optional but it is recommended for future use when need arises to review user account details and files.

I have used the tar utilities to create a backup of users home directory as follows:

Backup User Home Directory in Linux

Delete/Remove User Account and Files

Now you can safely remove user together with his/her home directory, to remove all user files on the system use the —remove-all-files option in the command below:

Delete User Account with Home Directory

Summary

That is all to do with removing user and their home directory from a Linux system. I believe the guide is easy enough to follow, but you can voice a concern or add more idea by leaving a comment.

DESCRIPTION

The userdel command modifies the system account files, deleting all entries that refer to the user name LOGIN. The named user must exist.

OPTIONS

The options which apply to the userdel command are:

-f, —force

Note: This option is dangerous and may leave your system in an inconsistent state.

-h, —help

-r, —remove

The mail spool is defined by the MAIL_DIR variable in the login.defs file.

-R, —root CHROOT_DIR

-P, —prefix PREFIX_DIR

-Z, —selinux-user

CONFIGURATION

The following configuration variables in /etc/login.defs change the behavior of this tool:

MAIL_DIR (string)

MAIL_FILE (string)

The MAIL_DIR and MAIL_FILE variables are used by useradd, usermod, and userdel to create, move, or delete the user’s mail spool.

MAX_MEMBERS_PER_GROUP (number)

The default value is 0, meaning that there are no limits in the number of members in a group.

This feature (split group) permits to limit the length of lines in the group file. This is useful to make sure that lines for NIS groups are not larger than 1024 characters.

If you need to enforce such limit, you can use 25.

Note: split groups may not be supported by all tools (even in the Shadow toolsuite). You should not use this variable unless you really need it.

USERDEL_CMD (string)

The return code of the script is not taken into account.

Here is an example script, which removes the user’s cron, at and print jobs:

USERGROUPS_ENAB (boolean)

FILES

EXIT VALUES

The userdel command exits with the following values:

CAVEATS

userdel will not allow you to remove an account if there are running processes which belong to this account. In that case, you may have to kill those processes or lock the user’s password or account and remove the account later. The -f option can force the deletion of this account.

You should manually check all file systems to ensure that no files remain owned by this user.

You may not remove any NIS attributes on a NIS client. This must be performed on the NIS server.

If USERGROUPS_ENAB is defined to yes in /etc/login.defs, userdel will delete the group with the same name as the user. To avoid inconsistencies in the passwd and group databases, userdel will check that this group is not used as a primary group for another user, and will just warn without deleting the group otherwise. The -f option can force the deletion of this group.

SEE ALSO

01/25/2023 shadow-utils 4.13

Package name: core/shadow Version: 4.13-2 Upstream: https://github.com/shadow-maint/shadow Licenses: BSD Manuals: /listing/core/shadow/ Table of contents

Powered by archmanweb, using mandoc for the conversion of manual pages.

The website is available under the terms of the GPL-3.0 license, except for the contents of the manual pages, which have their own license specified in the corresponding Arch Linux package.

Как удалить пользователя в 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 не так уж сложно, независимо от того где это нужно сделать, на сервере или домашнем компьютере. Конечно, графический интерфейс более удобен, но в терминал, как всегда, предлагает больше возможностей. Если у вас есть еще какие-нибудь идеи по этому поводу, напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Похожие записи

Оцените статью

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, там тоже была такая возможность как вход в систему автоматически (без указания пароля) для одного пользователя, которого можно было выбрать из списка. Эта настройка была где-то в главном меню Система\Параметры\Вход в систему. Как-то так она называлась. Точно не помню. Думаю, Вам следует посмотреть тут. Там не с ложно. Просто нужно указать в списке другого пользователя.

Как удалить учетные записи пользователей с домашним каталогом в Linux

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

Как удалить учетные записи пользователей с домашней директорией в Linux

Ниже описаны шаги по удалению учетных записей пользователей с домашним каталогом в Linux.

1. Создайте учетные записи пользователей

Сначала мы создадим учетную запись пользователя test1, используя следующие команды adduser. Вы также можете использовать для этой цели команду useradd. Его домашний каталог будет расположен по адресу /home/test1.

Для удаления учетных записей пользователей можно использовать команды deluser (для Debian/Ubuntu) и userdel (для RHEL/Fedora/CentOS). Но дело в том, что удалять пользователей в Linux можно только тогда, когда они не вошли в систему. Поэтому, если они вошли в систему и используют различные приложения и сервисы, вам придется сначала завершить их работу и принудительно выйти из системы, прежде чем удалять их учетные записи.

2. Блокировка учетных записей пользователей в Linux

Прежде всего, необходимо заблокировать учетную запись пользователя, которую вы хотите удалить из системы, чтобы он не мог запускать процессы или даже входить в систему. Это можно сделать с помощью команды passwd с опцией -lock, за которой следует имя пользователя. Вот команда для блокировки пользователя test1.

Блокировка учетных записей пользователей в Linux

3. Найти и завершить все процессы пользователя

Далее найдите все запущенные процессы указанного пользователя с помощью команды pgrep. Она выдаст вам PID всех процессов, запущенных пользователем. Вот команда для поиска всех процессов, запущенных пользователем test1.

Вы можете использовать вывод вышеуказанной команды в команде ps, чтобы получить более подробную информацию об этих процессах, например, их имя пользователя, PID, PPID (Parent Process IDs), используемый терминал, состояние процесса, путь команды и т.д.

Далее, вы можете использовать команду kill для уничтожения этих . Используйте опцию -9, чтобы завершить процессы, а затем PID всех процессов, которые вы хотите убить.

Также вы можете использовать опцию -u с командой killall, чтобы убить все процессы данного пользователя.

В приведенной выше команде мы используем опцию -9, чтобы послать процессам сигнал SIGKILL. Опция -u используется для указания имени пользователя, процессы которого мы хотим убить.

Иногда команда killall отсутствует в системе RHEL/CentOS/Fedora. Если команда killall отсутствует в вашей системе, вы можете использовать следующую команду для ее установки.

4. Резервное копирование данных пользователя

Рекомендуется создать резервную копию всех файлов и каталогов в домашней директории пользователя для дальнейшего использования. /home/test1 — это папка пользователя test1. Вот команда для резервного копирования содержимого папки пользователя test1.

5. Удаление учетных записей пользователей

Теперь вы можете использовать команду deluser или userdel, в зависимости от дистрибутива Linux, для удаления учетной записи пользователя. Хотя эта команда удаляет учетные данные пользователя из системы, она не удаляет содержимое домашнего каталога пользователя. Для этого вы можете использовать опцию -remove-home.

В Debian и его производных

В системах на базе RedHat/CentOS

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *