虚拟文件系统允许创建关闭 setuid 的数据集,这(据我所知)意味着无法在存储在这些数据集中的文件上设置 setuid 位。
现在假设有两个数据集,一个用于/root
,一个用于/home
目录。允许这两个数据集中的任何一个具有 setuid 位是否有意义?
我的理解是“否”,因为:
当然,root 可以以 root 权限执行任何二进制文件。因此,setuid in/root
似乎没有提供太多功能。
但是,如果某个文件归另一个用户所有,并且设置了 setuid 标志,那么当 root 执行该文件时,它将被视为由该用户而不是 root 拥有。因此,/home
从 root 的角度来看,在存储/安装的二进制文件上设置 setuid 可能有意义,但用户会这样做吗?而且还有更好的技术可以以 root 可以使用的另一个用户身份执行二进制文件。
我能想到的在用户主文件夹中使用 setuid 的唯一用途是,如果该用户必须能够以 root 权限执行无法在系统范围内安装且访问受到限制的二进制文件,例如在其他用户无法浏览的文件夹中。但这似乎有点牵强。