paul
我使用以下命令创建了一个名为的用户:
sudo adduser paul
adduser
还创建了一个名为 的新组paul
,并将其作为用户的主要组paul
。
我已经使用paul
用户创建了一个文件,并使用以下命令显示其信息ls-l
:
-rw-r--r-- 1 paul paul 25 2017-05-14 15:30 1.txt
paul
然后我使用以下命令删除了该用户:
sudo userdel paul
然后我使用以下命令显示了先前创建的文件的信息ls -l
:
-rw-r--r-- 1 1001 1001 25 2017-05-14 15:30 1.txt
由于我刚刚删除了该用户,该paul
用户已被其 ID(即 )替换。1001
但为什么还显示群组ID而不是群组名称,难道群组也被删除了?
答案1
概括
这是简短的答案:当用户被删除时,其主要组也会被删除,除非该组还包含其他用户。在后一种情况下,用户将被删除,但组不会被删除。
我们自己可以很容易地验证这一点。
情况 1:已删除用户的主要组中没有其他用户
首先我们考虑主要组不包含其他用户的情况。
创建paul
用户:
root@host:~# useradd paul
paul
使用以下命令检查组getent
:
root@host:~# getent group paul
paul:x:1001:
删除paul
用户:
root@host:~# userdel paul
paul
使用以下命令检查组getent
:
root@host:~# getent group paul
root@host:~#
请注意,此命令没有输出。我们也可以尝试自己删除该paul
组:
root@host:~# groupdel paul
groupdel: group 'paul' does not exist
这证实该paul
组不再存在。
情况 2:已删除用户的主要组中的其他用户
现在我们将检查如果尝试删除其组包含其他用户的用户会发生什么:
root@host:~# useradd user1
root@host:~# useradd user2
root@host:~# usermod -a -G user1 user2
root@host:~# groups user2
user2 : user2 user1
root@host:~# userdel user1
userdel: group user1 not removed because it has other members.
root@host:~# groups user2
user2 : user2 user1
root@host:~# getent group user1
user1:x:1002:user2
root@host:~# getent passwd user1
root@host:~# deluser user1
/usr/sbin/deluser: The user `user1' does not exist.
在这种情况下user1
用户已被删除,但user1
团体遗迹。