2013-05-31 15 views
0

所以,這有點令人困惑,但實際上我使用的是Django,我想實例化一個子進程來運行perl腳本。我讀過,這可以用在sudo中運行一個linux子進程

arg = "/some/file/path/" 
pipe = subprocess.Popen(["./uireplace", arg], stdin=subprocess.PIPE) 

當我把它在views.py適當的功能,但腳本需要一個sudo的哪些工作來完成。然後我把這個

pipe = subprocess.Popen(["sudo","./uireplace", arg], stdin=subprocess.PIPE) 

,當我在python從終端運行它的工作原理,但這並不當它通過在網絡上的隨機用戶調用工作。有什麼辦法可以自動輸入用戶名和密碼爲該sudo?問題是這不能用提示來完成,所以它只是失敗。

+1

修復腳本調用的正確權限/調用,或讓調用腳本/用戶使用[sudo without password](http://askubuntu.com/questions/39281/how-to-run-an-application - 使用 - 須藤 - 不 - 一個密碼)。 – timss

回答

1

解決OS級別的這個問題。給網絡上的任何用戶使用sudo的權利聽起來不正確。只需使./uireplace可執行。 chmod有很多選項可以對此進行微調。