以sudo的形式运行部分python脚本

以sudo的形式运行部分python脚本,python,security,subprocess,sudo,Python,Security,Subprocess,Sudo,我试图在sudo模式下仅运行脚本task.py的一部分。理想情况下,我将使用以下结构运行task.py: if __name__ == '__main__': print('running normal parts') . . . . [running normal commands] . . . . print('running sudo p

我试图在
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
的形式运行第二个块?我看到
子流程
模块可以使用
sudo
特权调用命令,但我不希望将“sudo部分”放入单独的脚本中来执行“运行sudo命令”部分。

我强烈建议将
sudo
部分放入一个单独的脚本中,就像推荐的文档一样。这种方法极大地改善了脚本的安全状态,因为只有使用提升的权限执行所需的部分才能做到这一点(也称为“最小权限”——一种基本的安全原则)


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

可能的重复:并且。
sudo
不必键入密码就不能以root用户身份运行命令,除非您在
/etc/sudoers
中定义了一个规则,以用户或root用户身份运行命令,而不使用密码。你需要格外小心。