![](/img/trans.png)
[英]python: how to run a program with a command line call (that takes a user's keystroke as input) from within another program?
[英]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文件。 該命令不能傳遞給另一個帳戶。
cmd1
和cmd2
是兩個不同的過程,彼此之間沒有影響。 如果您想使用su
路線,則需要通過以下方式調用shell腳本:
...["su","-","splunk", "-c", "./path/myBashFile.sh"]...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.