删除用户时,用户的主组会被删除吗?

删除用户时,用户的主组会被删除吗?

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 团体遗迹。

相关内容