来自 Linux 圣经,第 9 版:
未分配给任何用户名的文件被视为存在安全风险。
这怎么可能,又如何被利用?
编辑:我的问题不是上述问题的重复,因为我的问题集中在用户创建过程而不是关注最小权限原则。
未分配给任何用户名的文件被视为存在安全风险。
这怎么可能,又如何被利用?
编辑:我的问题不是上述问题的重复,因为我的问题集中在用户创建过程而不是关注最小权限原则。
在 Linux 系统上,您可以轻松删除用户,而无需删除该用户拥有的任何文件。这样的文件将保持不变,并且文件所有者的用户 ID(存储为inode的属性)保持不变。通过这种方式,文件可以变得有效地无主。
如果您稍后创建具有相同 ID 的用户,该用户将自动成为先前孤立文件的所有者。这就是新用户可能无意(或出于恶意)成为他们不应该拥有的文件的所有者的方式,这显然不利于安全。
请注意,它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.
您可能希望使用find
开关-nouser
来发现不存在所有者的文件:
-nouser
No user corresponds to file's numeric user ID.
这是 Arch Linux 的快速演示。
让我们添加一个用户alice
并使她成为文件的所有者foo
。
[root@box /]# useradd alice [root@box /]# touch foo [root@box /]# chown alice foo [root@box /]# ls -l foo -rw-r--r-- 1 alice root 0 Jan 5 02:59 foo
现在让我们删除alice
.
[root@box /]# userdel alice [root@box /]# ls -l foo -rw-r--r-- 1 1001 root 0 Jan 5 02:59 foo
ls
无法确定所有者名称,只显示数字所有者 ID 1001
。现在让我们添加一个新用户bob
。
[root@box /]# useradd bob [root@box /]# ls -l foo -rw-r--r-- 1 bob root 0 Jan 5 02:59 foo
由于bob
已分配下一个免费用户 ID,因此他现在自动成为文件的所有者。