【问题标题】:run part of python script as sudo将 python 脚本的一部分作为 sudo 运行
【发布时间】:2017-08-14 19:55:00
【问题描述】:

我试图在sudo 模式下仅运行我的脚本task.py 的一部分。理想情况下,我会使用以下结构运行 task.py

if __name__ == '__main__':
    print('running normal parts')        
    .            .              .
    . [running normal commands] .
    .            .              .

    print('running sudo parts')
    .            .              .
    .  [running sudo commands]  .
    .            .              .

我不必为脚本的 sudo 部分输入密码,这样我就可以从命令行调用$ python task.py

是否可以告诉 Python 以 sudo 运行第二个块?我看到subprocess 模块可以使用sudo 特权调用命令,但我宁愿不将“sudo 部分”放入单独的脚本中来执行“运行 sudo 命令”部分。

【问题讨论】:

  • 可能的骗子:thisthis
  • sudo 不会在不输入密码的情况下以 root 身份运行命令,除非您在 /etc/sudoers 中为此定义了一个规则,以便在没有密码的情况下以用户或 root 身份运行命令。你需要格外小心。

标签: python security subprocess sudo


【解决方案1】:

我会强烈建议将sudo 部分放入单独的脚本中,就像文档中推荐的那样。这种方法显着改善了脚本的安全状况,因为只有以提升的权限执行所需的部分(也称为“最小权限”——基本安全原则)。

我没有详细阅读该文档,但我怀疑它还提到了将写入权限限制为脚本的 sudo 部分以及它可能读取的任何文件或资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    相关资源
    最近更新 更多