gpt4 book ai didi

python - 如何从另一个用户在 linux 中运行命令行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:51 26 4
gpt4 key购买 nike

我需要从 red hat 中的 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 文件。此命令不能传递给另一个帐户。

最佳答案

cmd1cmd2 是两个不同的进程,互不影响。如果你想走 su 路线,你需要通过它调用你的 shell 脚本:

...["su","-","splunk", "-c", "./path/myBashFile.sh"]...

关于python - 如何从另一个用户在 linux 中运行命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com