[英]From a python script, change user, set environment and run a couple of commands
[英]Go into sudo user, run couple of commands, go back to normal user in Python script
我遇到的問題是我想暫時進入sudo用戶,運行幾個命令,然后回到普通用戶並以該模式運行命令。
您可以在這里找到要使用的腳本: https : //github.com/Greduan/dotfiles/blob/master/scripts/symlinks.py
基本上,當我在dotfiles的/bin
文件夾下安裝腳本時,我需要sudo訪問權限才能建立到該文件夾的符號鏈接。 您可以在代碼的最后一個for語句下找到腳本的這一部分。
但是,由於我確實依賴一些使用當前用戶作為指導來進行操作的命令,因此我不能只將整個腳本作為sudo
運行。 上次嘗試時,出現關於文件夾不存在的很多錯誤。
感謝您提供的所有幫助。
如果您不介意安裝外部依賴項,則sh
模塊使此操作非常簡單:
import sh
sh.cp('foo.txt', 'bar.txt')
with sh.sudo:
sh.cp('foo2.txt', 'bar2.txt')
最后,我嘗試了@Blender的解決方案,但是它沒有用,或者我無法弄清楚。
因此,我做了以下工作:
subprocess.Popen('sudo rm ' + final_dest, shell=True)
和:
subprocess.Popen('sudo ln -s ' + final_src + ' ' + final_dest, shell=True)
如我所料,它可以正常工作,並且沒有額外的依賴關系。 感謝您的回復@Blender,但它對我不起作用。 ; |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.