2016-07-29 56 views
0

我有一個腳本script.py我可以通過CGI執行導航到mydomain.com/runscript通過CGI執行需要root訪問的腳本

該腳本會使子進程調用echo「mysqldump ...」| sudo -i and sudo python using os.system(COMMAND)。當我嘗試通過網絡鏈接到運行該腳本,我得到了/var/log/apache2/error.log此錯誤:

[週五16年7月29日:52:42.515223 2016年] [CGI:錯誤AH01215:sudo:沒有tty存在,也沒有指定askpass程序

這是因爲CGI運行時用戶www-data,它沒有sudo權限。然而,錯誤仍然存​​在

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

我試着加入這個我的sudoers文件。爲什麼子進程調用不能接收根訪問權限,我怎樣才能把它們給它們,只有它們?謝謝!

回答

0

您可以通過管道將它傳遞密碼進入sudo命令:

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