Как удалить пользователя в linux

Обновлено: 04.07.2024

В данной инструкции рассказывается о работе с пользователями Linux через терминал (с применением командной строки).

Создание

useradd <имя пользователя> [опции]

* опции не являются обязательными при создании пользователя.

* в данном примере создается учетная запись dmosk.

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

* после ввода, система попросит ввести пароль дважды.

Ключи (опции)

Ключ Описание и примеры
-b Задает базовый каталог для домашнего каталога
useradd dmosk -b /var/home
-c Создает комментарий для описания учетной записи
useradd dmosk -c "Пользователя для управления системой"
-d Полный путь к домашнему каталогу пользователя
useradd dmosk -d /home/newuser
-D Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd dmosk -Ds /bin/bash
-e Дата, после которой учетная запись устареет.
useradd dmosk -e 2017-12-31
-f Число дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd dmosk -f 0
-g Задает основную группу
useradd dmosk -g altternativegroup
-G Задает дополнительные группы
useradd dmosk -G wheel
-k Путь к источнику скелета (файлы с шаблонами для нового пользователя)
useradd dmosk -k /var/skel
-m При создании пользователя создать домашний каталог
useradd dmosk -m
-M Не создавать домашний каталог
useradd dmosk -M
-N Не создавать основную группу с таким же именем, как у пользователя
useradd dmosk -N
-o Разрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-p Задает пароль
useradd dmosk -p pass
-r Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN - SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-R Каталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-s Путь до оболочки командной строки
useradd dmosk -s /bin/csh
-u Задает UID
useradd dmosk -u 666
-U Имя группы будет таким же, как у пользователя
useradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Редактирование

usermod <имя пользователя> [опции]

usermod dmosk -G wheel

* эта команда добавит пользователя dmosk в группу wheel

Удаление

userdel <имя пользователя> [опции]

Блокировка

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

usermod -L <имя пользователя>

usermod -L dmosk

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя>

Работа с группами

1. Добавление группы:

groupadd <группа> [опции]

groupmod <группа> [опции]

3. Удаление группы:

groupdel <группа> [опции]

4. Добавление пользователя в группу:

Выполняется через команду usermod:

usermod -a -G <группы через запятую> <пользователь>

5. Удаление из группы:

Выполняется с помощью gpasswd:

gpasswd --delete <пользователь> <группы через запятую>

Список пользователей

Посмотреть список пользователей можно в файле /etc/passwd:

Мы увидим что-то на подобие:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
.

Как правило, большая часть данных пользователей является системными — их UID меньше 1000 и больше 60000.

Более функциональная команда для отображения содержимого файла passwd — getent:

Можно найти пользователя по идентификатору:

getent passwd 1000

Получить список не системных пользователей:

Получить только список логинов не системных учетных записей:

Примеры работы с учетными записями

useradd

Создать пользователя, добавить его в группу и создать домашнюю директорию:

useradd dmosk -G wheel -m

Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):

useradd dmosk -u 900 -g 950

* группа с используемым идентификатором (в данном примере 950) уже должна быть создана заранее с использованием команды groupadd.

Создать пользователя и указать путь к домашней директории:

useradd dmosk -d /home/newdmosk

Создать учетную запись без возможности входа в систему:

useradd dmosk -s /sbin/nologin

usermod

Потребовать сменить пароль при следующем входе в систему:

chage -d 0 dmosk

Поменять пользователю основную группу:

usermod dmosk -g kdonewgroup

Задать пользователю дополнительную группу с правами root:

usermod dmosk -G sudo

Добавить пользователя в группу:

usermod -a -G group dmosk

* в данном примере мы добавим пользователя dmosk в группу group.

Сменить домашнюю директорию:

usermod -d /var/www/dmosk dmosk

* данной командой мы меняем для пользователя dmosk домашнюю директорию на /var/www/dmosk.

В этой инструкции мы рассмотрим как удалить пользователя 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

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





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

(11 оценок, среднее: 5,00 из 5)

Об авторе

8 комментариев

очень хороший сайт,и,что самое главное,полезный!

Здравствуйте! Вопрос не совсем по теме, но при вводе команды w, мне сообщают что в системе два пользователя. Ниже говориться кто они, вижу только себя, имя второго не сообщается, как узнать кто второй?
ЗЫ Только я имею доступ к этому серверу, захожу по ssh (putty), который слушает только локальную сеть.

Немного некропостинга. Второй пользователь - вероятнее всего root.

В ОС Windows всё сделать легко и просто, а вот с Linux я замучился -)

Привет! У меня армбиан, если я удалю того пользователя который логинется в графической оболочке автоматически, что произойдёт ? Как мне сменить пользователя который входит автоматом? ( я не знаю от него пароль но знаю пароль рута)

Всё правильно. Линукс не для всех.

Линукс для тех, кто хочет получать большего от операционной системы. Линукс для тех, кому мало одной кнопки "Сделай мне красиво". Линукс для тех, кому интересно знать как оно всё устроено и работает. Линукс хорош тем, что пользователь САМ определяет политику работы операционной системы. Пользователь сам перед собой несёт ответственность за работоспособность системы. Довольны все.

Виндовс для тех, у кого нет ни желания, ни необходимости лезть в тонкие настройки операционной системы. Виндовс для тех, кто далёк от компьютерной техники, но вынужден её использовать. Виндовс -- это сильно прикрытый от пользователя ящик. Ящик, который настраивается и поддерживается в рабочем состоянии известной Корпорацией. А чтобы пользователь не лез куда не надо, чтобы не было конфликтных ситуаций между настройками пользователя и настройками Корпорации, эта Корпорация пользователя всячески и серьёзно ограничивают. Только таким образом, коммерческая Корпорация, основная цель которой извлечение максимальной прибыли, может гарантировать пользователю работоспособность своей операционной системы на его компе. При такой политике у пользователя не будет ни каких юридических прав востребовать компенсацию убытков, понесённых из-за неработоспособности операционной системы, с Корпорации. Собственно, пользователь Виндовс за то и платит деньги, чтобы самому не разбираться в работе операционной системы. Довольны все -- и пользователь (получил удовольствие от того, что не вникает с в суть проблем), и Корпорация (получила деньги).

Руслан, а Вы не ошиблись с выбором операционной системы?

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

Если Вы удалите учётную запись, пользователь никак не сможет попасть в систему -- хоть через консоль, хоть графическую консоль. Для операционной системы не имеет значения как пользователь заходит (регистрируется) в систему. Для неё важно чтобы имелась учётная запись и был правильно набран пароль.

2. Как мне сменить пользователя который входит автоматом?

Операционная система Linux является многопользовательской системой. Это значит, что несколько человек могут взаимодействовать с ОС. Права доступа у различных пользователей одного персонального компьютера могут быть разными. Задача системного администратора состоит в том, чтобы следить за аккаунтами пользователей, включать и исключать их из определенных групп. Но помимо этих задач может возникнуть необходимость стереть запись бывшего сотрудника с компьютера вообще.

В ОС Linux стереть юзера утилитой – userdel. Пользователи некоторых дистрибутивов могут применять более понятную команду - deluser.

Синтаксис

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

userdel

userdel --help

  • -f или --force - принудительное удаление.
  • -h или --help - справочная информация.
  • -r или --remove - стереть домашний каталог юзера.
  • -Z или --selinux-user стереть SELinux объекты юзера.

deluser

Параметры утилиты лежат в файле /etc/deluser.conf

  • REMOVE_HOME - очистить домашний каталог.
  • REMOVE_ALL_FILES - очистить все файлы.
  • BACKUP - бэкап файлов.
  • BACKUP_TO - папка для бэкапа.
  • ONLY_IF_EMPTY - очистить группу юзера при условии, что папка пустая.

Примеры

Для примера, удалим пользователя polzovatel

При выполнении, утилита обратится к login.defs, который находится по адресу /etc/login.defs. Значения, записанные в данном файле, определяют начальные опции программы userdel. Если переменная USERGROUPS_ENAB имеет значение «yes», то будет удалена группа, с пользовательским именем, которое системный администратор вбил в команду. Но при условии, что больше в этой группе нет других пользователей.

Информация о пользователе будет также удалена из файлов:

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

userdel –r polzovatel

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

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

  1. Выйти из ОС и принудительно закрыть все активные юзерские программы. Для этого понадобится утилита killall – sudo killall –u polzovatel. По выполнению этой команды, можно удалять учетку пользователя.
  2. Передать параметр –f утилите userdel. Эта опция позволяет в принудительном режиме избавиться от аккаунта, даже если человек залогинился или имеются активные пользовательские программы.

userdel –f polzovatel

Вывод

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

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

В Linux вы можете удалить учетную запись пользователя и все связанные с ней файлы с помощью команды userdel .

В этом руководстве рассматривается команда userdel и ее параметры.

Синтаксис команды userdel

Синтаксис команды userdel следующий:

Чтобы удалить пользователей с помощью команды userdel , вам необходимо войти в систему как root или как пользователь с доступом sudo .

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

Чтобы удалить учетную запись username с именем username с помощью команды userdel вы должны выполнить:

При вызове команда считывает содержимое файла /etc/login.defs . Свойства, определенные в этом файле, переопределяют поведение userdel по умолчанию. Если для параметра USERGROUPS_ENAB в этом файле задано значение yes , userdel удаляет группу с тем же именем, что и пользователь, только если в этой группе нет других пользователей.

Команда удаляет записи пользователей из файлов /etc/passwd и /etc/shadow, .

В большинстве дистрибутивов Linux при удалении учетной записи пользователя с помощью userdel домашний каталог пользователя и каталог спула почты не удаляются.

Используйте параметр -r ( --remove ), чтобы заставить userdel удалить домашний каталог пользователя и почтовый ящик:

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

Если пользователь, которого вы хотите удалить, все еще находится в системе или если есть запущенные процессы , принадлежащие этому пользователю, команда userdel не позволяет удалить пользователя.

В этой ситуации рекомендуется выйти из системы и убить все запущенные процессы пользователя с помощью команды killall :

После этого вы можете удалить пользователя.

Выводы

В этом руководстве вы узнали, как удалить учетные записи пользователей в Linux с помощью команды userdel . Тот же синтаксис применяется к любому дистрибутиву Linux, включая Ubuntu, CentOS, RHEL, Debian, Fedora и Arch Linux.

Читайте также: