Как удалить пользователя в 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.
Если мы ещё раз проверим файл /etc/shadow, мы увидим, что произошло.
В начале зашифрованного пароля добавлен восклицательный знак. Он не перезаписывает первый символ, он просто добавляется в начало пароля. Это всё, что нужно, чтобы пользователь не мог войти в эту учётную запись.
Остановка процессов пользователя
Команда ничего не вывела. Чтобы убедиться, что что-то произошло, давайте ещё раз проверим командой who:
Его сеанс закончился. Он вышел из системы, и его процессы остановлены. Теперь мы можем немного расслабиться и продолжить зачистку.
Архивирование домашнего каталога пользователя
Не исключено, что в подобном сценарии в будущем потребуется доступ к файлам пользователя. Либо в рамках расследования, либо просто потому, что их замене, возможно, придётся обратиться к работе их предшественника. Мы будем использовать команду tar для архивации всего домашнего каталога.
Мы используем следующие опции:
Большая часть вывода на экран будет прокручиваться в окне терминала. Чтобы проверить, создан ли архив, используйте команду ls. Мы используем параметры -l (длинный формат) и -h (удобочитаемый).
Создан файл размером 722 МБ. Его можно скопировать в безопасное место для последующего просмотра.
Удаление заданий cron
Обратите внимание, что задания 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 и поменять разрешения на них следующим образом:
Как удалить пользователя в Linux
Операционная система Linux является многопользовательской системой. Это значит, что несколько человек могут взаимодействовать с ОС. Права доступа у различных пользователей одного персонального компьютера могут быть разными. Задача системного администратора состоит в том, чтобы следить за аккаунтами пользователей, включать и исключать их из определенных групп. Но помимо этих задач может возникнуть необходимость стереть запись бывшего сотрудника с компьютера вообще.
Синтаксис
Для удаления пользователей в операционных системах Линукс, используются две похожие команды userdel в Centos и deluser в Debian.
userdel
deluser
Параметры утилиты лежат в файле /etc/deluser.conf
Примеры
Для примера, удалим пользователя polzovatel
При выполнении, утилита обратится к login.defs, который находится по адресу /etc/login.defs. Значения, записанные в данном файле, определяют начальные опции программы userdel. Если переменная USERGROUPS_ENAB имеет значение «yes», то будет удалена группа, с пользовательским именем, которое системный администратор вбил в команду. Но при условии, что больше в этой группе нет других пользователей.
Информация о пользователе будет также удалена из файлов:
Следует учитывать то, что в большинстве дистрибутивов Linux команда userdel не стирает домашний каталог и почтовый спул пользователя.
Для того, чтобы это исправить необходимо передать параметр –r. Выглядеть такая операция будет так:
userdel –r polzovatel
Но даже в таком виде утилита не удалит файлы из других файловых систем. Сделать это придётся вручную.
Если человек, запись которого необходимо удалить, зашёл в ОС, то уничтожить его аккаунт привычным способом не получится. Здесь существует два возможных пути решения:
userdel –f polzovatel
Вывод
Как видите, стереть учетку юзера в Linux очень просто. Для этого достаточно знать, как вводятся простейшие команды в терминал, и как им передавать различные параметры. Даже начинающий сисадмин с лёгкостью справится с этим.
Как удалить пользователей в Linux (команда userdel)
How to Delete/Remove Users in Linux (userdel Command)
Это руководство охватывает userdel команду и ее параметры.
Иногда вам может понадобиться удалить учетную запись пользователя. Возможно, потому что пользователь отошел от организации или был создан для определенной службы, которая больше не работает в системе.
В Linux вы можете удалить учетную запись пользователя и все связанные с ней файлы с помощью userdel команды.
Синтаксис команды userdel
Синтаксис userdel команды следующий:
Чтобы удалить пользователей с помощью userdel команды, вам необходимо войти в систему как пользователь root или пользователь с правами sudo доступа.
Как удалить пользователя в Linux
Команда удаляет запись пользователя из /etc/passwd и /etc/shadow, файлов.
В большинстве дистрибутивов Linux при удалении учетной записи userdel пользователя домашние каталоги и каталоги спула не удаляются.
Команда выше не удаляет пользовательские файлы, расположенные в других файловых системах. Вы должны искать и удалять файлы вручную.
В этой ситуации рекомендуется выйти из системы и завершить все запущенные процессы пользователя с помощью killall команды:
После этого вы можете удалить пользователя.
Вывод
Из этого руководства вы узнали, как удалять учетные записи пользователей в Linux с помощью userdel команды. Тот же синтаксис применяется для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian, Fedora и Arch Linux.
userdel это утилита низкого уровня, пользователи Debian и Ubuntu, скорее всего, будут использовать deluser вместо нее команду Friendlier.
Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#29 Kali Linux для начинающих. Управление пользователями и группами.
Как и в любой другой операционной системе, в Линукс можно добавлять, удалять, изменять пользователей и группы.
В этой лекции мы познакомимся с пользователями и группами, и будем рассматривать их, а именно как создавать, удалять или изменять пользователей и группы. И в дополнении рассмотрим, как работают права. Какие права есть у пользователей и групп.
Что мы делаем после взлома системы? В первую очередь нам нужно узнать, под каким пользователем мы находимся в системе. Являемся ли мы рут-пользователем, или пользователем с низкими привилегиями.
И если Вы рут-пользователь – это отлично, а если нет, то нужно попытаться повысить права.
Сначала нам нужно узнать, кто мы, и к какой группе принадлежим. Также нам нужно будет узнать, какие пользователи еще есть в системе, для того, чтобы подобрать пароли к ним, и еще, к каким группам принадлежат эти пользователи.
В линуксе у каждого пользователя есть id. У рут-пользователя id равен нулю (id 0).
При создании новых пользователей, их id начинается с тысячи, т.е. у первого пользователя айди будет тысяча, а у второго тысяча один.
Все пользователи состоят в группах. По-умолчанию, группа создается идентично имени пользователя, к примеру у пользователя timcore, будет группа timcore. Конечно это можно изменить, и далее мы рассмотрим, как это можно сделать.
Для того, чтобы узнать, под каким пользователем мы находимся, нам пригодится команда «whoami»:
Как видим, я нахожусь под рут-пользователем.
Сейчас я хочу узнать, кто еще есть в моей системе, и что они делают. Для этого используется команда «w»:
Как видим есть один пользователь root с колонкой 0. 0 – это шелл. Есть еще один способ, как проверить количество пользователей в системе. Для этого, вводим команду «cat /etc/passwd»:
И, как видим, существует достаточно большое количество пользователей, которые есть в системе.
Обратите внимание на пользователя, с конечным описанием «/bin/false»:
Это означает, что данный пользователь не может удаленно подключиться к моей машине, но, если у пользователя будет запись «/bin/bash», то он может подключаться к моей машине.
Если мы детально рассмотрим записи пользователей, то практически у всех стоит «/bin/false».
Разумеется, у рут пользователя есть такой доступ.
Но в реальной системе мы можем столкнуться с зашифрованными паролями, которые, как правило, находятся в директории «/etc/shadow»:
Вместо паролей мы видим хеши, которые также можно взломать.
Теперь небольшое домашнее задание. Попробуйте самостоятельно изучить информацию о группах.
Для того, чтобы узнать, к какой группе Вы принадлежите, используется команда «id» или команда «groups (имя пользователя)». Чтобы просмотреть список групп, Вам пригодится команда «cat /etc/group».
После прохождения домашнего задания, перейдем к добавлению/удалению пользователей.
Для этих целей используются две команды: «adduser», «useradd». Команда «adduser», создает нового пользователя и домашнюю директорию.
Команда «useradd», создает нового пользователя, но не создает его домашнюю директорию. Перейдем к практике, перейдя в терминал, где я буду создавать нового пользователя «bob», с помощью команды «adduser»:
Как видим, была создан новый пользователя, новая группа, и домашняя директория для нового пользователя. Далее нужно ввести пароль, остальные конфигурации можно оставить по-дефолту. Жмем букву «y», и завершаем установку.
Создадим для примера еще одного пользователя, с помощью команды «adduser»:
Теперь создадим еще одного пользователя, с помощью команды «useradd»:
Как видим, никаких дополнительных данных нам не нужно вводить. Нет группы, домашней директории, пароля, описания.
Я переключусь на пользователя «mat», с помощью команды «su mat»:
Как видим, пользователь поменялся с рута, на mat, и появилась директория root, а также знак доллара $.
Давайте перейдем в домашнюю директорию mat. Это делается с помощью команд «cd»:
Давайте проверим домашние директории, с помощью «ls /home/»:
У меня существует несколько директорий, которые мы создавали ранее. Это «bob», «mat», но нет директории «mikhail». Давайте проверим этого пользователя, с помощью команды «su mikhail»:
Можно выйти из учетной записи, с помощью команды «exit».
Теперь Вы знаете, чем отличаются команда «adduser» и «useradd».
Теперь давайте проверим, что пользователи были созданы. Нужно выполнить команду «cat /etc/passwd»:
Обратите внимание на id пользователей, которые начинаются с 1000. Но у меня уже создано несколько пользователей, поэтому пользователь «bob», начинается с 1004.
У каждого пользователя присутствует /bin/bash. Это значит, удаленная авторизация на машине.
Как и в случае создания пользователей и групп, существует удаление.
Удаление проводится с помощью двух команд, в зависимости от удаления директории.
Команда «userdel» удаляет только пользователя:
Команда «deluser» удаляет пользователя и группу, которая привязана к пользователю. Чтобы удалить домашнюю директорию, то нужно прописать «—remove-home»:
Давайте проверим директорию /home/, с помощью команды «ls /home/»:
Как видим, директории bob не существует, и она была удалена.
Как удалить пользователя в Linux
В этой инструкции мы рассмотрим как удалить пользователя Linux вместе с его данными и домашним каталогом. Если вы системный администратор в крупной компании то, скорее всего, удаление пользователей Linux для вас довольно частая задача. После того как аккаунт становится ненужным или пользователь ушел из организации, его аккаунт нужно удалить, чтобы не оставлять дыр в безопасности.
Что нам понадобится?
Перед тем как переходить к действиям в реальной среде нужно немного попрактиковаться, давайте создадим два пользователя losst и losst1, вместе с домашними каталогами, а затем уже будем их удалять:
adduser losst
passwd losst
adduser losst1
passwd losst1
Здесь команда adduser используется для создания учетной записи пользователя, а passwd для создания пароля.
Удаление пользователя Linux в терминале
Описание deluser
Синтаксис команды deluser очень простой:
$ deluser параметры пользователь
Настройки команды deluser находятся в файле /etc/deluser.conf, среди прочих настроек там указанно что нужно делать с домашней папкой и файлами пользователя. Вы можете посмотреть и изменить эти настройки выполнив команду:
Рассмотрим подробнее эти настройки:
Эти настройки определяют поведение утилиты по умолчанию, когда выполняется удаление пользователя, конечно, их можно переопределить используя параметры для команды.
Поддерживаются такие параметры, они аналогичны настройкам, но тут больше вариантов:
Описание userdel
Утилита userdel работает немного по-другому, файла настроек здесь нет, но есть опции, с помощью которых можно сообщить утилите что нужно сделать. Синтаксис аналогичный:
$ userdel параметры пользователь
Для удаления пользователя с сервера лучше использовать расширенный способ, который мы рассмотрим ниже. Когда пользователи используют сервер, они запускают различные программы и сервисы. Пользователь может быть правильно удален, только если он не залогинен на сервере и все программы, запущенные от его имени остановлены, ведь программы могут использовать различные файлы, принадлежащие пользователю, а это помешает их удалить. Соответственно тогда файлы пользователя будут удаленны не полностью и останутся засорять систему.
Блокировка учетной записи пользователя
Уничтожить все запущенные процессы пользователя
Теперь давайте найдем все запущенные от имени пользователя процессы и завершим их. Найдем процессы с помощью pgrep:
Посмотреть подробнее, что это за процессы можно передав pid, каждого из них в команду ps, вот так:
Теперь, когда вы убедились, что там нет ничего важного, можно уничтожить все процессы с помощью команды killall:
В основанных на Red Hat системах, для использования killall необходимо будет установить пакет psmisc:
sudo yum install psmisc
Резервное копирование данных пользователя
Это вовсе не обязательно, но для серьезного проекта не будет лишним создать резервную копию файлов пользователя, особенно если там могли быть важные файлы. Для этого можно использовать, например, утилиту tar:
tar jcvf /user-backups/losst-backup.tar.bz2 /home/losst
Удаление учетной записи пользователя
Теперь, когда все подготовлено, начинаем удаление пользователя linux. На всякий случай укажем явно, что нужно удалять файлы пользователя и домашнюю директорию. Для Debian:
Если нужно удалить все файлы, принадлежащие пользователю в системе используйте опцию —remove-all-files, только будьте с ней осторожны, так и важные файлы можно затереть:
Теперь пользователь полностью удален, вместе со своими файлами и домашней директорией из вашей системы.
Удаление пользователя в Ubuntu
Как я и говорил, дальше рассмотрим как удалить пользователя в Ubuntu с помощью графического интерфейса. Это намного проще того, что было описано выше, но менее эффективнее.
Откройте Параметры системы:
Откройте пункт Пользователи:
Как видите, сейчас все действия недоступны, и нарисованы серым цветом. Чтобы их активировать нажмите кнопку Разблокировать и введите пароль пользователя.
Теперь для того чтобы удалить пользователя в linux достаточно кликнуть по нему мышкой, а затем нажать внизу страницы нажать кнопку Удалить пользователя:
В открывшимся окне можно выбрать, что нужно сделать с файлами пользователя:
Естественно, будет удаленна только домашняя папка, обо всех файлах речь не идет. И для корректного удаления пользователь должен быть не залогинен в системе.
Выводы
Удалить пользователя в Linux не так уж сложно, независимо от того где это нужно сделать, на сервере или домашнем компьютере. Конечно, графический интерфейс более удобен, но в терминал, как всегда, предлагает больше возможностей. Если у вас есть еще какие-нибудь идеи по этому поводу, напишите в комментариях!