將 www-data (lighttpd) 設定為 sudoer 不起作用

將 www-data (lighttpd) 設定為 sudoer 不起作用

我已經在樹莓派上安裝了lighttpd和fast-cgi。當執行需要 root 權限的 python 腳本時,出現以下錯誤:

運行時錯誤:無法存取 /dev/mem。嘗試以 root 身份運行!回溯(最近一次呼叫最後):檔案“/var/www/index.py”,第 134 行,在 GPIO.setup(17, GPIO.OUT);#enable A RuntimeError:無法存取 /dev/mem。嘗試以 root 身份運行!

我已使用 visudo 和“sudo usermod -a -G sudo www-data”將 www-data 新增為 sudoer,但它不起作用。我怎麼才能給lighttpd root權限?安全性並不重要,因為這是一個個人專案。

答案1

lighttpd 不使用 sudo。因此,將 www-data 新增至 sudoers 群組並沒有幫助。

您需要將設定檔中的 Web 使用者從 www-data 變更為 root:

server.username = "root"

如果需要,您可以將群組保留在 www-data,但如果您願意,您也可以將其變更為 root。

不過,您可以使用 sudo 作為 Python 腳本中的 www-data。確保設定為 NOPASSWD。

無論如何,運行 Web 伺服器root(或能夠s向任何伺服器執行u任何命令)都是非常糟糕的做法,因為 Web 伺服器或其服務的任何 Web 應用程式中的任何漏洞都意味著整個系統可能會完全受到損害。

在這裡,您很可能希望需要執行的任何操作/dev/mem都由 setuid root(或透過 執行sudo)的專用實用程式或由您的 Web 伺服器呼叫的單獨服務來執行。

相關內容