删除用户账号和组群账号

SHELL2010-11-21 06:09

删除用户账号

删除用户及组群账号要比添加账号需要考虑更多的内容,因为账号的删除并不是单纯将这个账号去除,另外有关此账号的目录空间也要一并删除,这样才能完整清除账号数据,以caroline为例:

在/etc/passwd 文件中删除用户的记录
caroline:x:502:502::/home/caroline:/bin/bash

在/etc/shadow 文件中删除用户的记录
caroline:!!:11887:0:99999:7:::

在/etc/group 中将用户同名的组群记录删除
caroline:x:501:

删除用户的主目录(/home/caroline)
[root@localhost ~]# rm -fr /home/caroline
-f 忽略不存在的文件,从不给出提示
-r 全部目录和子目录递归删除

删除用户的电子邮件,这是管理员经常忘记清除的空间,因为用户信箱中大多会存放许多数据,如果没有在删除账号时一并清除,则很容易造成硬盘空间的浪费,通常一般用户的电子邮件都是储存在/var/spool/mail目录下。
[root@localhost ~]# rm /var/spool/mail/caroline
rm:是否删除'/var/spool/mail/caroline'?y

删除用户执行的后台程序。为了避免用户目前还有程序在系统中执行,可以使用下面的方法来删除:
[root@localhost ~]# ps -aux | grep "caroline"
caroline 1694 0.0 0.4 2584 872 ? S 03:59 0:00 fam
[root@localhost ~]# kill -9 1694 -9 表示强制删除该程序

删除用户 crontab 的设置,如果用户曾经使用 crontab 来设置定时器,则在/var/spool/cron目录中会存在一个与用户同名的文件,可以使用下面的方法来删除:
[root@localhost ~]# rm /var/spool/cron/caroline

[root@localhost ~]# /usr/bin/crontab -u caroline -d

删除组群账号

在创建账号时,系统会自动创建该账号隶属的组群,但是在删除用户账号时,系统并不会自动删除组群,因此管理员必须手动删除组群账号。删除组群账号的步骤比删除用户账号容易许多,只要使用 groupdel 命令加上组群账号名称即可,下面是一个示例:
[root@localhost ~]# groupdel caroline

但是在删除组群账号需注意,如果该组群中的任何用户目前已登录系统中,则无法删除此组群账号,同时系统会出现groupdel:cannot remove user's primary group.的警告信息。
[root@localhost ~]# groupdel jack
groupdel:cannot remove user's primary group. (这个就是无法删除组群)


原文链接: http://blog.jtwo.me/delete-user-accounts-and-group-accounts