无法在python脚本中执行sudo命令



我正试图从python脚本执行sudo:

import os
command = 'id'
os.popen("sudo -S %s"%(command), 'w').write('password')

出于安全原因,我的服务器被配置为不允许非TTY shell执行sudo,有没有解决方法可以使用python(不使用su(执行sudo命令。

上述代码输出:

sudo: sorry, you must have a tty to run sudo

基于此:https://stackoverflow.com/a/21444480/1216776你应该能够做到:

import os
import pty
command = 'id'
scmd ="sudo -S %s"%(command)
def reader(fd):
return os.read(fd)
def writer(fd):
yield 'password'
yield ''
pty.spawn(scmd, reader, writer)

最新更新