簡體   English   中英

執行需要通過CGI進行root訪問的腳本

[英]Executing script requiring root access via CGI

我有一個腳本script.py ,可以通過導航到mydomain.com/runscript通過CGI執行。

但是,該腳本進行了子進程調用以回顯“ mysqldump ...”。 使用os.system(COMMAND)的 sudo -isudo python 當我嘗試通過網絡鏈接運行腳本時,在/var/log/apache2/error.log中收到此錯誤:

[2016年7月29日星期五16:52:42.515223] [cgi:error] [pid 3013] [客戶端##。###。##。##:#####] AH01215:sudo:沒有tty存在並且沒有指定了AskPass程序

這是因為CGI以用戶www-data的身份運行,該用戶沒有sudo權限。

我嘗試將其添加到我的sudoers文件中:

%www-data    ALL = (root) NOPASSWD: /var/www/html/scripts/script.py

但是錯誤仍然存​​在。 為什么子流程調用沒有接收到根訪問權限,我如何才能將其賦予它們並且僅授予它們? 謝謝!

您可以通過以下方式將密碼傳遞給sudo命令:

echo <your password> | sudo -S <your command>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM