Re: [問題] Django使用subprocess的權限問題

作者: uranusjr (←這人是超級笨蛋)   2017-11-05 14:29:37
※ 引述《fordpines (阿福)》之銘言:
推 yeh6: echo <password> | sudo -S <command> , 只是密碼明文很好笑 11/05 09:56
針對這部份講一下, 主要有幾個解法
1. 用 getpass 模組在 runtime 獲得密碼
import getpass
password = getpass.getpass('輸入密碼: ')
Popen(f'echo {password} | sudo -S ...', shell=True)
2. 用 pexpect https://github.com/pexpect/pexpect
這個模組類似 Unix 的 expect 工具
可以讓你在程式裡指定遇到某個 prompt 的時候自動輸入資訊
基本上就是用在這個用途, 會比前面的 echo 解法更好
搭配 getpass 也就不用直接把密碼寫在程式裡了
3. 直接叫 subprocess 讓你輸入
用 Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
就可以在 terminal 看到子程式的 prompt 和直接輸入回去
作者: akasan (KITO)   2016-11-02 00:43:00
valgrind, 但 windowns 版的沒試過XDlinux 上那真的是不二選擇了
作者: Linux (Windows)   2016-11-02 00:45:00
我是用 Windows ....>"<
作者: yeh6   2016-11-05 09:56:00
echo <password> | sudo -S <command> , 只是密碼明文很好笑
作者: ssdoz2sk (眷戀著提拉米蘇的風采~)   2017-11-06 00:55:00
簽名檔 XDDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com