Linux

mkdir 上設置 setuid 而不使其成為執行檔

  • January 25, 2022

我正在設置 setuidmkdir而不使其成為執行檔。

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它是不可執行的。

您已清除文件所有者的可執行權限,但未清除其組成員或其他使用者的可執行權限。結果,唯一被權限拒絕訪問的使用者是root;每個其他使用者都被授予權限。(root 仍然可以執行二進製文件,因為 root 可以執行設置了任何一個可執行位的任何二進製文件。)

setuid 位不影響授予或拒絕權限的方式;它僅在執行二進製文件時影響程序的有效 uid。

請參閱了解 UNIX 權限和文件類型限制性“組”權限但打開“世界”權限?詳情。

引用自:https://unix.stackexchange.com/questions/687804