Linux 使用 userdel 命令删除用户帐户
在 Linux 操作系统下, 您需要使用 userdel 命令来删除用户帐户及其相关文件。在 Linux 上,必须以 root 用户身份运行 userdel 命令。
Linux 删除用户命令语法
在 Linux 上删除用户帐户的语法如下。
# userdel userName
# userdel [options] userName
# userdel -r userName
如何使用 userdel 命令删除 Linux 中的用户
- 要删除用户,请输入:
$ sudo userdel <user_name>
- 删除其他根目录中的用户 (cd 进入 /path/to/dir1/ 然后将其删除):
$ sudo userdel --root </path/to/dir1/> <user_name>
- 删除用户以及主目录和邮件池:
$ sudo userdel --remove <user_name>
让我们详细探讨语法和示例。
userdel 命令示例
让我们从本地 Linux 系统 / 服务器 / 工作站中删除名为 vivek 的用户或名为 vivek 的帐户,输入:
# userdel vivek
接下来,删除用户的主目录和邮件假脱机将-r选项传递给名为 ashish 的用户的 userdel,输入:
# userdel -r ashish
解释如何在 Linux 中删除带有主目录的用户帐户
# userdel -r -f tom
要删除用户的任何 SELinux 用户映射,请传递-Z选项:
# userdel -Z -r -f jerry
其中,
- -f:删除 Linux 用户帐户并强制删除文件
- -r:删除 Linux 用户帐户,包括主目录和邮件池
- -Z:从 Linux 中删除用户时,删除该用户的所有 SELinux 用户映射
关于 /etc/login.defs 文件的说明
默认值取自基于 RHEL(Red Hat)发行版的/etc/login.defs文件中提供的信息。基于 Debian 和 Ubuntu Linux 的系统使用/etc/deluser.conf文件:
# /etc/deluser.conf: deluser configuration - Debian / Ubuntu Linux only. # Remove home directory and mail spool when user is removed REMOVE_HOME = 0 # Remove all files on the system owned by the user to be removed REMOVE_ALL_FILES = 0 # Backup files before removing them. This options has only an effect if # REMOVE_HOME or REMOVE_ALL_FILES is set. BACKUP = 0 # target directory for the backup file BACKUP_TO = "." # delete a group even there are still users in this group ONLY_IF_EMPTY = 0 # exclude these filesystem types when searching for files of a user to backup EXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs)"
从 Linux 中删除用户帐户的完整示例
以下是从 Linux 服务器删除用户的推荐步骤。首先,锁定用户帐户,输入:
或设置禁用用户帐户的日期(语法为usermod --expiredate YYYY-MM-DD userNameHere):
如果用户尝试登录,他们将收到以下消息:
# passwd -l vivek
# usermod --expiredate 1 vivek
Your account has expired; please contact your system administrator Authentication failure
接下来,将文件从 /home/vivek 备份到 /nas/backup(将 $uid 设置为用户 ID {UID},例如 1000,将 $now 设置为当前日期和时间戳 {yyyy-mm-dd}):
# tar -zcvf /nas/backup/account/deleted/v/vivek.$uid.$now.tar.gz /home/vivek/
请用实际 UID 和日期/时间替换 $uid、$now。如果用户当前已登录,则 userdel 命令不允许您删除帐户。您必须终止任何正在运行的属于要删除的帐户的进程,输入:
删除 at 作业,输入
删除cron 作业,输入:
删除打印作业,输入:
要查找用户 vivek 拥有的所有文件,请输入:
您可以查找名为 vivek 的用户拥有的文件并按如下方式更改其所有权:
最后,删除名为 vivek 的用户帐户,输入:
示例会话:
# pgrep -u vivek
# ps -fp $(pgrep -u vivek)
# killall -KILL -u vivek
# find /var/spool/at/ -name "[^.]*" -type f -user vivek -delete
# crontab -r -u vivek
# lprm vivek
# find / -user vivek -print
# find / -user vivek -exec chown newUserName:newGroupName {} \;
# userdel -r vivek
图 01:在 Linux 中删除带有主目录和所有数据的用户帐户
参见:
- /etc/passwd – 用户的基本属性。
- 帮助:老员工访问 Linux 服务器。
- /etc/shadow – 用户密码的基本属性。
- /etc/group – 组的基本属性。
- 使用 help 命令或 man 命令查看以下手册页。例如:
$ man 1 rm
$ man 1 crontab
$ man 1 find
$ man 8 userdel
$ man 1 ps