- Linux Drop User – Remove a Linux user
- Linux drop user account
- How to remove a Linux user
- Examples
- How To: Linux Delete / Remove User Account Using userdel
- Linux delete user command syntax
- userdel command examples
- A Note About /etc/login.defs File
- Complete example to remove user account from Linux
- See also:
- UNIX / Linux : How to lock or disable an user account
- 1. Lock the password
- 2. Expire the user account
- 3. Changing the shell
- Verify if the account is locked or disabled.
- Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux
- Управление аккаунтами в Linux
- Знакомьтесь, /etc/passwd
- /etc/passwd, советы и хитрости
- /etc/shadow
- /etc/group
- Примечания о группах
- Ручное создание пользователей и групп
- Редактирование /etc/passwd
- Редактирование /etc/shadow
- Установка пароля
- Редактирование /etc/group
- Создание домашней директории
- Утилиты администрирования учетных записей
- Об авторах
- Daniel Robbins
- Chris Houser
Linux Drop User – Remove a Linux user
Linux drop user account
Procedure to remove the user account is as follows:
- Open the Terminal app. Log in to your server using ssh command:
ssh user@server-name-here - Run the userdel command to remove the old user named tom:
sudo userdel tom - To delete all files in the user’s home directory along with the home directory itself and the user’s mail spool:
sudo userdel -r tom
Let us see all examples and command in details.
How to remove a Linux user
The syntax is as follows to remove a user account and related files:
userdel userNameHere
userdel -f userNameHere
userdel -r userNameHere
userdel -Z user-name-here
Where options are as follows for the command:
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
- -f – This option forces the removal of the user account, even if the user is still logged in. It also forces userdel to remove the user’s home directory and mail spool, even if another user uses the same home directory or if the specified user does not own the mail spool.
- -r – Files in the user’s home directory removed along with the home directory itself and the user’s mail spool. Files located in other file systems will have to be searched for and deleted manually.
- -Z – Remove any SELinux user mapping for the user’s login. Useful on Fedora, RHEL, CentOS and other distro where SELinux used.
Warning: Be careful with the userdel command. It delete a user’s home directory/files. Always keep backups.
Examples
Delete a Linux user named jerry:
# userdel Jerry
Verify that user has been deleted with the id command or grep command # id Jerry
# grep ^Jerry /etc/passwd
You have to delete home directory and other files manually using rm command:
# ls /home/
# rm -rf /home/Jerry
To avoid deleting files manually pass the -r to the userdel command. In this example, delete a user named tom:
# userdel -r tom
# id tom
# grep ^tom /etc/
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
How To: Linux Delete / Remove User Account Using userdel
H ow do I remove a user’s access from my server? How do I delete a user account under Linux operating systems include home directory and running cron jobs?
You need to use the userdel command to delete a user account and related files from user account under Linux operating system. The userdel command must be run as root user on Linux.
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | Yes |
Requirements | Linux |
Est. reading time | 4 minutes |
Linux delete user command syntax
The syntax is as follows to remove a user account on Linux.
userdel userName
userdel [options] userName
userdel -r userName
userdel command examples
Let us remove the user named vivek or account named vivek from the local Linux system / server / workstation, enter:
# userdel vivek
Next, delete the user’s home directory and mail spool pass the -r option to userdel for a user named ashish, enter:
# userdel -r ashish
Explains how to delete user account with home directory in Linux
A Note About /etc/login.defs File
Default values are taken from the information provided in the /etc/login.defs file for RHEL (Red Hat) based distros. Debian and Ubuntu Linux based system use /etc/deluser.conf file:
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Complete example to remove user account from Linux
The following is recommend procedure to delete a user from the Linux server. First, lock user account, enter:
# passwd -l vivek
OR set the date on which the user account will be disabled (syntax is usermod —expiredate YYYY-MM-DD userNameHere ):
# usermod —expiredate 1 vivek
If user try to login, he or she will get the following message:
Next, backup files from /home/vivek to /nas/backup
# tar -zcvf /nas/backup/account/deleted/v/vivek.$uid.$now.tar.gz /home/vivek/
Please replace $uid, $now with actual UID and date/time. Tye userdel command will not allow you to remove an account if the user is currently logged in. You must kill any running processes which belong to an account that you are deleting, enter:
# pgrep -u vivek
# ps -fp $(pgrep -u vivek)
# killall -KILL -u vivek
Delete at jobs, enter
# find /var/spool/at/ -name «[^.]*» -type f -user vivek -delete
Remove cron jobs, enter:
# crontab -r -u vivek
Delete print jobs, enter:
# lprm vivek
To find all files owned by user vivek, enter:
# find / -user vivek -print
You can find file owned by a user called vivek and change its ownership as follows:
# find / -user vivek -exec chown newUserName:newGroupName <> \;
Finally, delete user account called vivek, enter:
# userdel -r vivek
Sample session:
Fig.01: Delete User Accounts with Home Directory and All Data In Linux
See also:
- Help: Old Employees Accessing The Linux Server.
- /etc/passwd – The basic attributes of users.
- /etc/shadow – The basic attributes of users password.
- /etc/group – The basic attributes of groups.
- Man pages – ps(1)
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
UNIX / Linux : How to lock or disable an user account
There are several ways in which user account can be locked or disabled. The posts discusses few of the most widely used ways.
1. Lock the password
To lock a users account use the command usermod -L or passwd -l. Both the commands adds an exclamation mark (“!”) in the second field of the file /etc/passwd. For example :
2. Expire the user account
The commands passwd -l and usermod -L are ineffcient when it comes to disable/lock user accounts. These commands will not disallow authentication by SSH public keys (or other PAM modules other than pam_unix that may be enabled). Additionally, changing the shell to /bin/false or /sbin/nologin is unsatisfactory to us since this only affects interactive logins. So to completely disable user accounts you can user the command chage -E0. For example :
Expiring an account via use of the 8th field in /etc/shadow (using “chage -E”) will block all access methods that use PAM to authenticate a user.
3. Changing the shell
We can also change the default shell of the user to /sbin/nologin so that the user do not get any login shell when he tries to login into the system.
You can check for the 7th and last field in /etc/passwd for the change of shell to /sbin/nologin.
Verify if the account is locked or disabled.
For each of the methods described above, you can verify if the user account is locked/disabled using below methods.
1. Check if the user account is locked.
Check for the flag *LK* in the below command output which indicates that the account is locked.
2. Check if the account has an expire date.
Check for the lines Password expires and Account expires to check if the account password is expired.
3. Check for non-interactive shell
Check if the user shell has been changed to a non-interactive shell like /sbin/nologin.
Источник
Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux
Навигация по основам Linux от основателя Gentoo:
Часть I:
Часть II:
Часть III
Управление аккаунтами в Linux
Знакомьтесь, /etc/passwd
В этом разделе мы познакомимся с механизмом управления аккаунтами в Linux и начнем с файла /etc/passwd, в котором определены все пользователи, которые существуют в системе. Вы можете посмотреть свой файл /etc/passwd, набрав команду less /etc/passwd. Каждой строкой в /etc/passwd определяется аккаунт пользователя. Вот пример из моего /etc/passwd:
drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash
Как видите, в одной строке не так уж много информации. Каждая из них содержит несколько полей, разделённых «:». Первое поле отвечает за имя пользователя (drobbins), второе поле содержит «x». На устаревших Linux-системах второе поле содержало зашифрованных пароль для аутентификации, но фактически, сейчас все Linux-системы хранят эту информацию в другом файле. Третье поле отвечает за числовой пользовательский идентификатор, связанный с конкретным пользователем, а четвертое поле ассоциирует этого пользователя с конкретной группой; скоро мы увидим, где определена группа 1000. Пятое поле содержит текстовое описание аккаунта, в нашем случае это имя пользователя. Шестое поле определяет домашний каталог пользователя, седьмое — устанавливает стартовую оболочку пользователя, которая будет автоматически запускаться когда пользователь входит в систему.
/etc/passwd, советы и хитрости
Вы вероятно заметили, что в системе намного больше пользовательских аккаунтов, которые определены в /etc/passwd, чем тех, которые логинятся в систему на самом деле. Всё это потому, что различные компоненты Linux используют некоторые аккаунты для повышения безопасности. Обычно, такие системные аккаунты имеют идентификатор (uid) меньший 100, и у многих из них в качестве стартовой оболочки установлена /bin/false. Так как эта программа ничего не делает, кроме как выходит и возвращает код ошибки, это эффективно препятствует использованию этих аккаунтов в качестве обычных аккаунтов для логина — т.е. они предназначены только для внутрисистемного пользования.
/etc/shadow
Итак, сами пользовательские аккаунты определены в /etc/passwd. Системы Linux вдобавок к /etc/passwd содержат его файл-компаньон /etc/shadow. Он, в отличие от /etc/passwd, доступен для чтения только суперпользователю и содержит зашифрованную информацию о паролях. Взглянем на образец строки из /etc/shadow:
drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
Каждая строка определяет информацию о пароле конкретного аккаунта, поля в ней разделены знаком «:». Первое поле определяет конкретный пользовательский аккаунт, которому соответствует данная «теневая» запись. Во втором поле содержится зашифрованный пароль. Оставшиеся поля описаны в таблице ниже:
поле 3 — количество дней с 01.01.1970 до момента, когда пароль был изменен
поле 4 — количество дней до того, как будет разрешено сменить пароль («0» — «менять в любое время»)
поле 5 — количество дней до того, как система заставит пользователя сменить пароль («-1» — «никогда»)
поле 6 — количество дней до истечения срока действия пароля, когда пользователь получит предупреждение об этом («-1» — «не предупреждать»)
поле 7 — количество дней после истечения срока действия пароля, по прошествии которых аккаунт будет автоматически отключен системой («-1» — «не отключать»)
поле 8 — количество дней, прошедшее с момента отключения этого аккаунта («-1» — «этот аккаунт включен»)
поле 9 — зарезервировано для будущего использования
/etc/group
Теперь взглянем на файл /etc/group, который определяет группы в системе Linux. Вот примерная строка из него:
drobbins:x:1000:
Формат полей файла /etc/group следующий: первое поле определяет имя группы, второе поле — это поле остаточного пароля, которое сейчас просто зарезервировано x, и третье поле определяет числовой идентификатор для конкретной группы. Четвертое поле (которое пусто в примере выше) определяет всех членов группы.
Вспомните, что в нашем образце строки из /etc/passwd есть «ссылка» на группу с идентификатором 1000. Мы сможем поместить пользователя drobbins в группу drobbins, даже несмотря на отсутствие имени drobbins в четвертом поле /etc/group.
Примечания о группах
Замечание насчет соответствия пользователей с группами: на некоторых системах каждый новый логин-аккаунт связан с группой, имеющей то же имя (и обычно идентификатор). На других системах все логин-аккаунты будут принадлежать к одной группе пользователей. Какой из этих методов выбрать зависит от вас. Создание соответствующей группы для каждого пользователя имеет преимущество в том, что позволяет им более легко контролировать их собственный доступ просто помещая доверенных друзей в свою личную группу.
Ручное создание пользователей и групп
Теперь, я покажу как создать аккаунты для пользователя и группы. Лучший путь узнать как это сделать это добавить нового пользователя в систему вручную. Для начала убедитесь что вашей переменной окружения EDITOR соответствует ваш любимый редактор:
# echo $EDITOR
vim
Если это не так, то вы можете установить переменную EDITOR, набрав что-то, вроде:
# export EDITOR=/usr/bin/emacs
# vipw
Теперь ваш редактор должен быть запущен с уже загруженным /etc/passwd экране. Изменяя системные файлы passwd и group обязательно используйте команды vipw и vigr. Они имеют повышенные меры предосторожности, оберегая ваши файлы от участи быть испорченными.
Редактирование /etc/passwd
Итак, у вас уже есть готовый файл /etc/passwd, добавьте теперь следующую строку:
testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false
Мы только что добавили пользователя «testuser» с идентификатором 3000. Мы определили его в группу с таким же идентификатором, которую еще не создали. Но мы можем добавить его к уже имеющейся группе пользователей, если нужно. У этого пользователя установлен комментарий, гласящий «LPI tutorial test user», домашний каталог установлен как «/home/testuser», а командная оболочка — как «/bin/false», в целях безопасности. Если бы мы создавали не тестовый аккаунт, мы бы установили командную оболочку как «/bin/bash». Отлично, теперь сохраните файл и выходите.
Редактирование /etc/shadow
Сейчас нам нужно добавить запись в /etc/shadow для этого пользователя. Для этого наберите vipw -s. Вас как всегда встретит ваш любимый редактор в котором уже открыт файл /etc/shadow. Теперь скопируйте строку существующего пользовательского аккаунта (того, у которого есть пароль и запись которого длиннее стандартных записей системных аккаунтов)
drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
Замените имя пользователя в скопированной строке на имя вашего пользователя и убедитесь что все поля (особенно старый пароль) установлены как вам надо:
testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
Теперь сохраните и закройте.
Установка пароля
Вы вернетесь к командной строке. Теперь, самое время задать пароль для вашего нового пользователя.
# passwd testuser
Enter new UNIX password: (enter a password for testuser)
Retype new UNIX password: (enter testuser’s new password again)
Редактирование /etc/group
Теперь /etc/passwd и /etc/shadow готовы и самое время как следует настроить /etc/group. Для этого, наберите:
# vigr
Перед вами появится ваш /etc/group файл, готовый для редактирования. Итак, если ранее вы решили добавить созданного пользователя к уже имеющейся группе, то вам не понадобиться создавать новую группу в /etc/groups. Если это не так, вам нужно добавить новую группу для этого пользователя, введите следующую строку:
testuser:x:3000:
Теперь сохраните и закройте.
Создание домашней директории
Мы почти закончили. Выполните следующие команды для создания домашнего каталога testuser’а:
# cd /home
# mkdir testuser
# chown testuser:testuser testuser
# chmod o-rwx testuser
Наш каталог пользователя на месте и аккаунт готов к использованию. Уже почти готово. Если вы собираетесь использовать этот аккаунт, вам надо будет воспользоваться vipw для смены стартовой оболочки на /bin/bash, так, чтобы пользователь смог войти.
Утилиты администрирования учетных записей
Вы уже знаете как вручную добавить новые аккаунты и группы, давайте же теперь рассмотрим различные, экономящие время, утилиты для управления аккаунтами под Linux. Из-за некоторых ограничений мы не будем рассматривать множество деталей, описывающих эти команды. Запомните — вы всегда можете получить больше информации о какой-либо команде если посмотрите её man-страничку. Если вы планируете сдавать LPIC 101 экзамен, вам следует провести побольше времени на ознакомление с каждой из этих команд.
newgrp — По умолчанию, любой файл, который создает пользователь, сразу же присваивается к группе, в которой он состоит, определенной в /etc/passwd. Если пользователь принадлежит к другим группам, он или она может набрать newgrp thisgroup чтобы стать членом группы thisgroup. Затем, любые новые созданные файлы унаследуют членство в thisgroup.
chage — Команда chage используется для просмотра и изменения настроек срока действия паролей, сохраненных в /etc/shadow.
gpasswd — Основная утилита управления группами
groupadd/groupdel/groupmod — Используются для добавления/удаления/изменения групп в /etc/group
useradd/userdel/usermod — Используются для добавления/удаления/изменения пользователей в /etc/passwd. Эти команды могут выполнять и другие полезные функции. Смотрите man для получения дополнительной информации.
pwconv/grpconv — Используются для преобразования passwd и group файлов старого образца в новые shadow passwords. Фактически, все Linux системы уже используют shadow passwords, так что вам никогда не придется использовать эти команды.
Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо следующим benoid-юзерам (в алфавитном порядке): kindacute, nekjine, Rich. А также инициатору всей серии переводов, VBart.
Об авторах
Daniel Robbins 
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Источник