删除用户帐户是Linux管理员的基本任务之一,我们通常在Linux系统中使用userdel命令删除用户帐户,以下将附上实例演示,让您充分的掌握使用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
上面的输出清楚地表明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会话不会自动终止。 用户退出系统后,当前会话将断开连接,此后他将无法登录,因为我们已经删除了该帐户:
下面的输出清楚地显示了给定的用户帐户已从系统中完全删除: # 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命令备份内容并将其删除。
相关主题 |