作为sudo运行python脚本的一部分
问题描述:
我试图在sudo
模式下仅运行我的脚本task.py
的一部分。理想情况下我会用以下结构运行task.py
:作为sudo运行python脚本的一部分
if __name__ == '__main__':
print('running normal parts')
. . .
. [running normal commands] .
. . .
print('running sudo parts')
. . .
. [running sudo commands] .
. . .
,我不必为脚本的须藤部分输入密码,这样我可以只是让命令行单个呼叫$ python task.py
。
是否有一个很好的告诉Python运行第二个块为sudo
?我看到subprocess
模块有办法用sudo
privelages调用命令,但我宁愿不将“sudo部分”放入单独的脚本中以执行“运行sudo命令”部分。
答
我会高度建议把sudo
件到一个单独的脚本只是作为文档建议。这种方法极大地提高了脚本的安全状态,因为只有使用提升特权执行的部分才能完成(又称“最小特权” - 安全原则)。
我还没有详细阅读该文档,但我怀疑它还提到限制对脚本sudo
部分的写权限以及它可以读取的任何文件或资源。
可能的诱惑:[this](https://*.com/questions/34189165/python-running-select-sections-of-code-as-sudo)和[this](https://*.com /问题/ 34281235 /怎么办 - 你 - 临时运行的代码,如根)。 – ForceBru
''sudo'不会以root用户的身份运行命令,除非您在'/ etc/sudoers'中为用户或root用户运行一个没有密码的命令的规则。你需要格外谨慎。 – direprobs