- Как в Linux удалить пользовательский аккаунт вместе с домашней директорией
- Блокирование пользовательского аккаунта в Linux
- Поиск и завершение всех запущенных процессов пользователя
- Резервное копирование данных пользователя перед удалением
- Удаление аккаунта и файлов пользователя
- Как удалять пользователей в Linux (команда userdel)
- Синтаксис команды userdel
- Как удалить пользователя в Linux
- Выводы
- Как удалить пользователя в Linux
- Синтаксис
- userdel
- deluser
- Параметры утилиты лежат в файле /etc/deluser.conf
- Примеры
- Вывод
- Как удалить пользователя в Linux (и удалить все его «хвосты»)
- Учётные записи пользователей в Linux
- Наш сценарий
- Проверка входа
- Просмотр процессов пользователя
- Блокировка учётной записи
- Остановка процессов пользователя
- Архивирование домашнего каталога пользователя
- Удаление заданий cron
- Удаление заданий на печать
- Удаление учётной записи пользователя
Как в Linux удалить пользовательский аккаунт вместе с домашней директорией
Оригинал: How to Delete User Accounts with Home Directory in Linux
Автор: Aaron Kili
Дата публикации: 4 декабря 2015 года
Перевод: А. Кривошей
Дата перевода: ноябрь 2016 г.
Системному администратору Linux может потребоваться удалить пользовательский аккаунт, который долгое время не используется, или если пользователь покинул компанию, либо по каким-либо другим причинам.
При удалении аккаунта пользователя в Linux также важно удалить его домашнюю директорию, чтобы освободить дисковое пространство.
1. Для демонстрационных целей сначала я создам два пользовательских аккаунта с домашними директориями в своей системе с помощью команды adduser — для пользователей tecmint и linuxsay
Вместо команды adduser можно использовать команду useradd, они предназначены для одного и того же.
2. Теперь давайте посмотрим, как удалить аккаунт пользователя в Linux с помощью команд deluser (для Debian и его производных) и userdel (для систем на базе RedHat/CentOS)
Директивы в конфигурационном файле для команд deluser и userdel определяют, как они работают с пользовательскими файлами и директориями.
Давайте посмострим на конфигурационный файл для команды deluser, расположенный в /etc/deluser.conf для производных Debian, таких как Ubuntu, Kali, Mint; и расположенный в /etc/login.defs для RHEL/CentOS/Fedora.
Значения в этих файлах заданы по умолчанию и могут быть изменены в соответствии с вашими нуждами.
3. Если пользователь авторизован на сервере, он пользуется различными службами и запускает разные процессы. Необходимо помнить, что полностью удалить пользователя можно только тогда, когда он не авторизован на сервере.
Блокирование пользовательского аккаунта в Linux
Сначала заблокируем пользовательский аккаунт, чтобы пользователь не имел доступа в систему. Это предотвратит запуск процессов в системе от его имени. Для этого используется команда passwd с ключом –lock:
Поиск и завершение всех запущенных процессов пользователя
Далее необходимо найти все работающие процессы этого пользователя и завершить их, определив PID процессов, принадлежащих нашему пользователю:
Затем вы можете вы можете вывести список процессов с более подробной информацией:
После того, как вы нашли все запущенные процессы пользователя, вы можете завершить их с помощью команды killall:
-9 — это номер для сигнала SIGKILL, вместо него можно использовать ключ -KILL.
Замечание: в последних релизах RedHat/CentOS 7.x и Fedora 21+ вы можете получить следующую ошибку:
Для ее предотвращения необходимо установить соответствующий пакет, как показано ниже:
Резервное копирование данных пользователя перед удалением
Далее вы можете сделать резервную копию пользовательских файлов, если нужно. Для создания архива с резервной копией домашней директории пользователя я использовал утилиту tar:
Удаление аккаунта и файлов пользователя
Теперь вы можете безопасно удалить пользователя вместе с его домашней директорией. Для удаления всех файлов пользователя предназначена опция —remove-all-files:
Источник
Как удалять пользователей в Linux (команда userdel)
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 :
После этого вы можете удалить пользователя.
Другой вариант — использовать параметр -f ( —force ), который сообщает userdel принудительно удалить учетную запись пользователя, даже если пользователь все еще находится в системе или если есть запущенные процессы, принадлежащие пользователю.
Выводы
В этом руководстве вы узнали, как удалить учетные записи пользователей в Linux с помощью команды userdel . Тот же синтаксис применяется к любому дистрибутиву Linux, включая Ubuntu, CentOS, RHEL, Debian, Fedora и Arch Linux.
userdel — это утилита низкого уровня, пользователи Debian и Ubuntu, скорее всего, будут использовать более дружелюбную команду deluser .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Как удалить пользователя в Linux
Операционная система Linux является многопользовательской системой. Это значит, что несколько человек могут взаимодействовать с ОС. Права доступа у различных пользователей одного персонального компьютера могут быть разными. Задача системного администратора состоит в том, чтобы следить за аккаунтами пользователей, включать и исключать их из определенных групп. Но помимо этих задач может возникнуть необходимость стереть запись бывшего сотрудника с компьютера вообще.
В ОС Linux стереть юзера утилитой – userdel. Пользователи некоторых дистрибутивов могут применять более понятную команду — deluser.
Синтаксис
Для удаления пользователей в операционных системах Линукс, используются две похожие команды userdel в Centos и deluser в Debian.
userdel
- —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 не стирает домашний каталог и почтовый спул пользователя.
Для того, чтобы это исправить необходимо передать параметр –r. Выглядеть такая операция будет так:
userdel –r polzovatel
Но даже в таком виде утилита не удалит файлы из других файловых систем. Сделать это придётся вручную.
Если человек, запись которого необходимо удалить, зашёл в ОС, то уничтожить его аккаунт привычным способом не получится. Здесь существует два возможных пути решения:
- Выйти из ОС и принудительно закрыть все активные юзерские программы. Для этого понадобится утилита killall – sudo killall –u polzovatel. По выполнению этой команды, можно удалять учетку пользователя.
- Передать параметр –f утилите userdel. Эта опция позволяет в принудительном режиме избавиться от аккаунта, даже если человек залогинился или имеются активные пользовательские программы.
userdel –f polzovatel
Вывод
Как видите, стереть учетку юзера в Linux очень просто. Для этого достаточно знать, как вводятся простейшие команды в терминал, и как им передавать различные параметры. Даже начинающий сисадмин с лёгкостью справится с этим.
Источник
Как удалить пользователя в 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 и поменять разрешения на них следующим образом:
Источник