Apache-Httpd

如何在 apache 的 dd-wrt 中以 root 身份執行 cgi

  • August 1, 2020

我想執行一些腳本,其中包括來自 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

(可能需要更多)。

正如您在評論中所說,由於二進製文件位於只讀文件系統上,因此您需要使用該文件的副本。

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