簡體   English   中英

進入sudo用戶,運行幾個命令,使用Python腳本回到普通用戶

[英]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.

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