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