繁体   English   中英

如何从另一个用户在Linux中运行命令行

[英]how to run command line in linux from another user

我需要从戴着红色帽子的python程序(python2.7)执行bash脚本,而此bash脚本必须以splunk用户身份从另一个用户帐户运行。

在Linux中,我将首先切换到splunk用户su - splunk ,然后以splunk用户su - 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"]...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM