【问题标题】:how to issue sudo command using python如何使用 python 发出 sudo 命令
【发布时间】:2017-03-19 13:27:37
【问题描述】:

我需要发出“sudo service nginx status”来检查服务状态。我有以下内容:

import commands
service output = commands.getoutput("sudo service nginx status")

但我得到“没有 tty 存在并且没有指定 askpass 程序”

有人明白吗?

【问题讨论】:

    标签: python command sudo


    【解决方案1】:

    使用commands.getoutput 使得无法提供 sudo 命令所需的用户输入。 这个名字是自解释的,你只对命令输出感兴趣。 stdin 已关闭。

    有几种解决方案:

    1. 关闭启动此 python 脚本的 sudo 用户的密码验证。 (阅读 /etc/sudoers)

    2. 输入您的密码:(不安全/错误的解决方案,但很简单) “回显 YOURPASS | sudo ...”

    3. 签出subprocess.popen 允许您从控制台或文件提供输入 https://docs.python.org/2/library/subprocess.html#popen-constructor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-29
      • 2013-09-26
      • 2020-03-30
      • 1970-01-01
      • 2014-08-15
      • 2019-12-23
      • 1970-01-01
      • 2019-11-13
      相关资源
      最近更新 更多