簡體   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