【发布时间】:2016-07-13 11:46:55
【问题描述】:
我想在 Python 脚本中运行具有特定用户权限的命令。
import os
os.subprocess("sudo su user; cd <directory_path> ; touch test", shell=True)
这里的测试文件不是以我使用 sudo su 的用户的所有权创建的。
我也用 sudo -u 和 sudo -i 尝试了相同的命令,但没有成功。
【问题讨论】:
我想在 Python 脚本中运行具有特定用户权限的命令。
import os
os.subprocess("sudo su user; cd <directory_path> ; touch test", shell=True)
这里的测试文件不是以我使用 sudo su 的用户的所有权创建的。
我也用 sudo -u 和 sudo -i 尝试了相同的命令,但没有成功。
【问题讨论】:
您正在使用调用sudo su 或sudo -i 的方式生成一个新shell,而新shell 没有通过cd;touch。
你可能想要一些类似
的东西sudo -u user touch <dir>/test
(不过,如果目录不存在,其行为与您的预期代码略有不同)。
【讨论】:
cd <directory_path>; touch test),请参阅this question。