錯誤提示sudo: no tty present and no askpass program specified Sorry, try again.


php調用shell腳本的svnup.php文件內容:

<?
set_time_limit(0);
//$output = array();
$ret = 0;
exec("/usr/bin/sudo /data0/shell/svnvp.sh", $output, $ret);
echo "Result:{$ret}";
print_r($output);
?>

/data0/shell/svnvp.sh是更新的腳本,主要內容是svn up。

還需要修改sudo配置文件,直接鍵如visudo命令編輯配置文件:

1. 注釋Defaults requiretty
Defaults requiretty修改為 #Defaults requiretty, 表示不需要控制終端。
否則會出現sudo: sorry, you must have a tty to run sudo

2. 增加行 Defaults visiblepw
否則會出現 sudo: no tty present and no askpass program specified

我發現sudo-1.6.9p17-5.el5是不支持這個參數的,sudo-1.7.2p1-10.el5支持。


3. 賦予www用戶執行svn權限
如,增加行:www  ALL=(ALL) NOPASSWD: /data0/shell/svnvp.sh
注:NOPASSWD可以使在命令執行時不需要交互輸入www 用戶的密碼

www用戶為nginx或apache的運行用戶

4.重啟nginx或apache,讓用戶重新獲得權限。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM