【发布时间】:2018-10-02 20:55:18
【问题描述】:
当通过subprocess.run执行命令时,该命令执行的权限是什么?它是封闭python文件的权限吗?是用户权限吗?
例如,如果使用 sudo 运行 python 文件:
sudo python3 file.py
file.py 包含该行
subprocess.run([ 'chmod', '+x', 'file.sh' ])
chmod 会以超级用户权限运行吗?
【问题讨论】:
-
...该命令实际上根本不会运行。必须是
subprocess.run(['chmod', '+x', 'file.sh']),除非通过了shell=True(不应该这样)。 -
不调用外部命令并做些什么呢:
os.chmod(path, 0o755) -
将命令更新为有效。没有理由运行它。只是想举一个需要提升权限的命令示例。真实的例子很长:)
标签: python unix permissions subprocess