我需要在戴着红色帽子的python程序(python2.7)中执行bash脚本,而该bash脚本必须以splunk用户身份从另一个用户帐户运行。
在Linux中,我将首先切换为splunk用户su - splunk
,然后以splunk用户身份键入命令./mybashFile
这是我尝试过的:
import subprocess
cmd1=subprocess.Popen(["su","-","splunk"],shell=True,stdout=subprocess.PIPE)
cmd2=subprocess.Popen(["./path/myBashFile.sh"],shell=True,stdin=cmd1.stdout,stdout=subprocess.PIPE)
cmd2.stdout
我仍然无法以splunk用户身份运行此bash文件。此命令无法传递到另一个帐户。
答案 0 :(得分:4)
cmd1
和cmd2
是两个不同的过程,互不影响。如果您想走su
路线,则需要通过以下方式调用Shell脚本:
...["su","-","splunk", "-c", "./path/myBashFile.sh"]...