云网牛站
所在位置:首页 > Linux命令 > 在Linux系统中使用userdel命令删除用户帐户,附实例演示

在Linux系统中使用userdel命令删除用户帐户,附实例演示

2020-03-01 21:43:30作者:陈有利稿源:云网牛站

删除用户帐户是Linux管理员的基本任务之一,我们通常在Linux系统中使用userdel命令删除用户帐户,以下将附上实例演示,让您充分的掌握使用userdel命令技巧。

在Linux系统中使用userdel命令删除用户帐户,附实例演示

 

userdel的简介

为什么要使用userdel,理由如下:

每当新员工加入您的组织时,我们都需要为他们创建系统用户帐户,当他/她离开公司时,我们需要立即删除它,它将从系统中删除相应的用户信息,以避免不必要的安全漏洞。

userdel定义:

userdel命令用于从Linux系统中删除用户帐户和相关文件,它修改系统帐户文件,删除所有引用用户名LOGIN的条目。

如果有正在运行的进程属于该帐户,userdel将不允许您删除该帐户,在这种情况下,您可能必须终止这些进程或锁定用户的密码或帐户,然后再删除该帐户,-f选项可以强制删除该帐户。

您应该手动检查所有文件系统,以确保该用户没有文件拥有。

当我们从Linux系统删除用户帐户时,以下文件将被修改。

/etc/passwd:用户详细信息将在此文件中更新。

/etc/shadow:用户密码信息将在此文件中更新,参考掌握Linux系统中的/etc/shadow文件格式和输入示例

/etc/group:此文件中将更新新用户的组详细信息。

/etc/gshadow:文件中新用户的组密码信息将被更新。

userdel命令的通用语法:

# userdel [Option] [User_Name]

 

1、如何从Linux系统中单独删除用户帐户?

如果您只想从系统中删除用户帐户,请使用以下格式,它将仅从系统中删除用户帐户并保留文件。

在这里,我们将从系统中删除user1用户帐户,并查看将其删除后将发生的情况,参见下面的输出:

# userdel user1

输出:我可以看到user1用户帐户(用户和组)权限已消失,取而代之的是用户的UID和GID:

# ls -ld /home/user1

drwxr-xr-x 4 1008 1008 4096 Feb 17 10:23 /home/user1

上面的输出清楚地表明用户帐户已从系统中删除,但用户主目录仍存在于系统中,如果您也要删除用户的主目录,请使用-r选项。

 

2、如何从Linux系统删除整个用户帐户?

使用以下命令删除整个用户帐户,它将同时删除用户的主目录:

# userdel -r user2

userdel: user2 mail spool (/var/mail/user2) not found

下面的输出清楚地显示了给定的用户帐户已从系统中完全删除:

# ls -ld /home/user2

ls: cannot access '/home/user2': No such file or directory

但是在系统中仍然存在crontab条目,应该通过搜索用户文件将其手动删除:

# ls -lh /var/spool/cron/crontabs/user2

-rw------- 1 1009 crontab 1.2K Feb 29 00:36 /var/spool/cron/crontabs/user2

 

3、如何在Linux中删除已登录的用户帐户?

使用带有userdel命令的-f选项可以从系统中删除已登录的用户,如下图所见,user3当前已登录系统,我将在force选项的帮助下将其删除:

root@Ubuntu18:~# w

在Linux系统中使用userdel命令删除用户帐户,附实例演示

上面的输出清楚地表明user3用户当前正在访问ssh会话,现在我将删除用户帐户,查看输出:

# userdel -rf user3

userdel: user user3 is currently used by process 30371

userdel: user3 mail spool (/var/mail/user3) not found

上面的输出显示了userdel警告消息:进程30371当前正在使用user user3(userdel: user user3 is currently used by process 30371),同时用户帐户已从系统中删除,但ssh会话不会自动终止。

用户退出系统后,当前会话将断开连接,此后他将无法登录,因为我们已经删除了该帐户:

在Linux系统中使用userdel命令删除用户帐户,附实例演示

下面的输出清楚地显示了给定的用户帐户已从系统中完全删除:

# ls -ld /home/user3

ls: cannot access '/home/user3': No such file or directory

 

4、如何从Linux系统删除SELinux用户映射?

使用以下命令,通过添加-Z选项来删除该用户的SELinux用户映射:

# userdel -Zfr user4

userdel: user4 mail spool (/var/mail/user4) not found

 

附:如何查找user2拥有的所有文件?

userdel命令将删除用户帐户,主目录和用户邮件后台打印程序,但不会删除其他文件系统,使用以下命令找出那些文件并手动将其删除:

# find / -user user2 -print

find: _user2_ is not the name of a known user

上面的输出显示user2在系统中不存在,但是用户crontab条目在那里,它是由user2创建的,要查找详细信息,请使用以下格式,查看输出:

# find / -name user2 -print

/var/spool/cron/crontabs/user2

有关详细信息,请使用以下命令:

# ls -lh /var/spool/cron/crontabs/user2

-rw------- 1 1009 crontab 1.2K Feb 29 00:36 /var/spool/cron/crontabs/user2

# rm -Rf /var/spool/cron/crontabs/user2

现在,当我们从系统中删除用户帐户时,我很清楚,它删除用户帐户,主目录,用户邮件后台打印程序以及用户主要组。

但是,如果用户创建的某些文件位于其他文件系统中,则不会删除该文件,因此,我们需要使用上述find命令通过搜索将其手动删除。

 

注意

如果希望特定的用户帐户内容供将来使用,则需要在执行删除操作之前使用tar命令进行备份,可以使用tar命令备份内容并将其删除。

 

相关主题

Ubuntu 18.04下创建新用户/目录、修改用户权限及删除用户的方法

Linux命令子频道
精选文章
热门文章