【问题标题】:Unable to execute sudo command in python script无法在 python 脚本中执行 sudo 命令
【发布时间】:2020-04-12 01:28:14
【问题描述】:

我正在尝试从 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

【问题讨论】:

标签: python python-3.x linux sudo


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2014-02-08
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    相关资源
    最近更新 更多