Apache-Httpd
如何在 apache 的 dd-wrt 中以 root 身份執行 cgi
我想執行一些腳本,其中包括來自 Apache 的 iptables 規則(在 dd-wrt 的埠 81 上執行)。我似乎無法讓這些工作,因為我缺乏權限。我希望有人能指出我錯過的不需要重新編譯 Apache 的東西。
我正在執行 dd-wrt v3.0-r33525M kongac (10/16/17)。我在埠 81 上執行 Apache 實例。
我不能以 root 身份執行 Apache,因為似乎有編譯指令/預設值阻止了這種行為。
我無法執行腳本 SUID(好吧,我可以,但是 SUID 位被忽略了,因為它們是腳本)。
我可能是錯的,但 Busybox 的版本似乎沒有 sudo 功能。
我可以從在埠 80 上執行的 GUI 中執行腳本,但我真的很想建構自己的簡單界面,而不是讓更多人訪問它並且必須執行命令而不是點擊連結。
我希望我可以用 cron 做一些事情,但是我希望這將需要 cron 來輪詢文件,從而導致我非常想避免的延遲。同樣,我假設我可以通過 ssh 連接到 localhost 並以這種方式升級我的權限,但這似乎不安全且需要大量工作。
iptables
由於您的系統受到限制,因此簡單地創建二進制 setuid 根可能幾乎沒有安全隱患。我不知道dd-wrt
,但 Linux 的等價物是 root:chmod u+s /sbin/iptables
假設文件屬於root。如果系統支持功能,更安全的選項可能是設置所需的功能:
setcap CAP_NET_ADMIN,CAP_NET_RAW+ep /sbin/iptables
(可能需要更多)。
正如您在評論中所說,由於二進製文件位於只讀文件系統上,因此您需要使用該文件的副本。