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

时间:2020-04-12 01:28:14

标签: python python-3.x linux sudo

我正在尝试从python脚本执行sudo:

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

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

上面的代码输出:

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

1 个答案:

答案 0 :(得分:1)

基于此: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)