Linux

suid 腳本無法正常工作

  • February 11, 2018

我的作業系統是 Fedora 24,我嘗試測試 suid 位功能。

我在 bash 下面寫為 Setuid.bash:

#!/bin/bash
if [ $USER = 'root' ]
then
   echo "Like Root Run"
   echo "Root User Add in " $(date) >> /etc/SetUid
else
   echo "Other User Run"
   echo $USER "User Add in " $(date) >> /etc/SetUid
fi

-rwsrw-r-x. 1 root root 249 May 21 14:45 /bin/Setuid.bash許可和-rwx------. 1 root root 432 May 21 14:45 /etc/SetUid

/bin/Setuid.bash現在,當我以 root 身份嘗試時,我得到了:

像根執行

但是當與測試使用者一起執行時,我遇到了:

其他使用者執行

bin/Setuid.bash:第 8 行:/etc/SetUid:權限被拒絕

如果有人讓我知道,我將不勝感激,我的方法哪裡錯了?

很久以前,bash(和其他 shell 解釋器)再次添加了內置的安全措施 suid (ab)use 因為它是/是危險的。SUID Shell 腳本的危險

來自為什麼 Bash 是這樣的:suid

設置了 suid 位的 Bash 腳本無法執行。首先,Linux 不允許設置任何腳本,儘管其他一些作業系統可以。其次,bash 會檢測到正在以 setuid 執行,並立即刪除權限。

這是因為 shell 腳本的安全性非常依賴於環境,比普通的 C 應用程序更依賴環境。

最終,現在 suid 位主要用於可執行二進製文件。像這樣執行腳本/bash 的一種方法是從 suid 編譯的二進製文件中呼叫它。

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