以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用户身份运行命令,而不使用密码。你需要格外小心。