2014-04-20 151 views
0

我以root用戶身份登錄/ home文件夾時遇到問題。這是我的腳本:Python以root身份運行腳本和/ home文件夾

home = os.path.expanduser("~") 
print home    # home is good: /home/guillaume 

# gksudo 
euid = os.geteuid() 
if euid != 0: 
    print "Running sudo.." 
    args = ['gksudo', sys.executable] + sys.argv + [os.environ] 
    os.execlpe('gksudo', *args) 
print home   # home has changed: /root 

gksudo運行後如何獲得好/ home?由於

編輯:我已經試過

subprocess.call(['gksudo', 'script.py']) 

腳本啓動,但腳本里面的操作都沒有根

+1

爲什麼選擇gksudo而不是sudo? gksudo用於圖形應用程序。那是你要的嗎?? – evading

+0

是的,這是一個圖形應用程序,我在usr/share/application中創建了一個桌面圖標 – Guillaume

回答

3

sudo設置一個號碼的過程中的環境變量;請參閱man sudo的列表。在這種情況下,您可以使用SUDO_USER

# from under sudo 
home = os.path.expanduser(os.environ["SUDO_USER"]) 
+0

謝謝,這很好。我用這個來找到用戶。之後,我添加「/ home /」 – Guillaume

相關問題