【发布时间】:2020-05-15 08:51:04
【问题描述】:
def execute_cli_locally(command, timeout=CLI_EXECUTION_TIMEOUT,
return_output_as_string=True)
try:
logger.info("Executing commands locally :\n%s", command)
ssh = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
stdout, stderr = ssh.communicate(command)
if ssh.returncode == 0:
stdout = stdout.strip()
if len(stdout) != 0:
logger.info("Stdout :\n%s", stdout)
return stdout
else:
logger.error("Local command execution failed. Error :\n%s" % stderr)
print_response_and_exit(STATUS_FAILED,
"Local commands [%s] execution failed. Error :\n%s" %
(command, stderr))
我正在对这个 python 脚本执行 SUDO 命令,但抛出错误“sudo:抱歉,你必须有一个 tty 才能运行 sudo”。
【问题讨论】:
-
你试过ssh -t user@example.com sudo命令/path/to/file,即使用-t开关吗?
-
是的,我也尝试使用'-t',但它抛出了同样的错误
-
你能粘贴输出吗:sudo cat /etc/sudoers | grep 要求
-
Defaults requiretty # 已更改,以便能够在没有 tty 的情况下使用 sudo。见上面的requiretty。默认值:consul !requiretty
标签: python python-3.x python-2.7 python-requests sudo