Невозможно выполнить команду sudo в сценарии python - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь выполнить sudo из сценария python:

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

Мой сервер настроен так, чтобы не разрешать выполнение sudo оболочками без TTY по соображениям безопасности, есть ли обходной путь для этого выполните команду sudo, используя python (без использования su).

Вышеприведенный код выводит:

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

1 Ответ

1 голос
/ 12 апреля 2020

Исходя из этого: { ссылка } вы должны быть в состоянии сделать:

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)
...