簡體   English   中英

如何通過 Python 程序以該用戶身份切換用戶並執行多個終端命令

[英]How can I switch user and perform multiple terminal commands as that user through a Python program

我正在開發一個自動化程序,我希望能夠連續運行這串 Linux 命令,然后關閉子進程:“su my_user”、“cd ~/asdf/qwer/”和“sudo bash zxcv_zcv.sh”。

我在 python 2.7 上,到目前為止我已經嘗試使用這些命令:

subprocess.call("su my_user; cd ~/asdf/qwer/; sudo bash zxcv_zcv.sh",shell=True)
subprocess.Popen("su my_user; cd ~/asdf/qwer/; sudo bash zxcv_zcv.sh",shell=True)
os.system("su my_user; cd ~/asdf/qwer/; sudo bash zxcv_zcv.sh")

到目前為止,唯一發生的事情是程序創建了一個新終端,我可以在 my_user 下與之交互。 我什至不想看到終端,這對於我通過子進程或操作系統運行的任何其他 Linux 命令都沒有發生。 有誰知道發生了什么以及我該如何解決這個問題?

好的,我剛剛為任何想知道的人找到了這個問題的答案。 對於我使用的命令字符串,只需在“su”和“my_user”之間添加 -c 即可運行良好。

subprocess.call("su -c my_user; cd ~/asdf/qwer/; sudo bash zxcv_zcv.sh", shell=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM