删除用户命令userdel不加-r参数会怎样

都知道删除用户用userdel -r USERNAME,-r表明把用户相对应的目录一并删除,那么,假如疏忽了忘记加参数,会有什么结果,今天我尝试了一下。linux


#首先建立用户user2,删除后再从新添加:bash

[root@localhost ~]# useradd user2
[root@localhost ~]# userdel user2
[root@localhost ~]# useradd user2
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists

#没错,显示家目录已存在,而且,mailbox文件存在。由于删除用户时候没加-r选项,查看/home里面是否真存在该目录:
[root@localhost ~]# ll /home
total 60
drwx------. 2 ab1       ab1     4096 Aug 16 02:13 ab1
drwx------. 2 ab2       ab2     4096 Aug 16 02:13 ab2
drwx------. 2 ab3       ab3     4096 Aug 16 02:14 ab3
drwx------. 2 mageia    mageia  4096 Aug 20 21:38 linux
drwx------. 2 root      root   16384 Aug  6 07:18 lost+found
drwx------. 2 tom       tom     4096 Aug 17 01:51 tom
drwx------. 2 tom1      tom1    4096 Aug 17 01:51 tom1
drwx------. 4 user      user    4096 Aug 20 04:21 user
drwx------. 2 user2     user2   4096 Aug 21 14:10 user2

#是否删除/home/user2便可?咱们尝试一下:
[root@localhost ~]# rm -rf /home/user2
[root@localhost ~]# useradd user2
useradd: user 'user2' already exists
[root@localhost ~]# userdel user2
[root@localhost ~]# useradd user2
Creating mailbox file: File exists

#这个就是一开始咱们只删除home目录下对应的文件,并无删除mailbox里的文件,该文件会存放在哪里?
咱们查看一下userdel的帮助手册,其中-r命令里有这样的描述显示该命令做用区域:
home directory itself and the user′s mail spool:

[root@localhost ~]# man userdel
-r, --remove
           Files in the user′s home directory will be 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.

           The mail spool is defined by the MAIL_DIR variable in the login.defs
           file.
[root@localhost ~]# ls /var/spool/mail
ab1  ab2  ab3  mageia  mandriva  openstack  slackware  tom  tom1  user
  user2
  
[root@localhost ~]# rm /var/spool/mail/user2

删除该文件并从新建立user2,成功。ide


由此可知,删除用户userdel 加参数-r是多么重要。学习


那么问题来了,建立用户会生成什么文件?rem

目前得知的是/etc/passwd, /etc/shadow, 但这两个都只是添加记录,it

建立文件夹的有/home/USERNAME,/var/spool/mail/USERNAME  至于其余地方有没有,等待后续深刻学习吧。class