我正在设置 setuid,mkdir
但没有将其设置为可执行文件。
chmod u+s /usr/bin/mkdir
chmod u-x /usr/bin/mkdir
[root@rhel-85 /]# ls -l /usr/bin/mkdir
-rwSr-xr-x. 1 root root 84664 Jul 9 2021 /usr/bin/mkdir
现在,当我以另一个用户身份登录时"user1"
我仍然able to create directory even when the "mkdir" binary is non-executable.
我的理解是“user1”不应该能够创建目录,因为mkdir
它是不可执行的。
答案1
您已清除文件所有者的可执行权限,但尚未清除其组成员或其他用户的可执行权限。结果,唯一的用户被拒绝访问通过权限是根;所有其他用户都被授予权限。 (root 仍然可以执行二进制文件,因为 root 可以执行任何设置了任一可执行位的二进制文件。)
setuid 位不会影响授予或拒绝权限的方式;它只影响进程执行二进制文件时的有效 uid。