當前位置: 首頁>>技術教程>>正文


“gksudo nautilus”和“sudo nautilus”有什麽區別?

, , , ,

問題描述

我一直使用gksudo nautilussudo nautilus通過Alt + F2

有什麽不同?他們看起來非常相似!

最佳解決思路

取自here

You should never use normal sudo to start graphical applications as root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=/root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by root.

請注意,這主要是關於配置文件。如果您將Nautilus作為root運行,即使使用gksu /gksudo,並且您隨處可用(包括在您的主目錄中)創建文件或文件夾,該文件或文件夾將由root擁有。但是,如果您使用sudo將Nautilus(或大多數其他圖形應用程序)作為root運行,則可以將其配置文件保存在您的主目錄(而不是root的主目錄)中。這些配置文件可能由root擁有,並且當您不以root身份運行時不可訪問,這可能會嚴重影響您的設置,甚至可能導致某些應用程序無法運行。

該解決方案一旦犯了這個錯誤,就是找到配置文件並刪除它們,或者將它們chown歸還給您的非root用戶。許多這樣的文件以.開頭或包含在以.開頭的目錄中。有些位於主目錄中的.config文件夾內。要查看以Nautilus中的.開頭的文件和文件夾,請按Ctrl + H(顯示隱藏文件)。要使用ls查看它們,請使用-a(或-A)標誌。

要查找主目錄中是否有不屬於您的文件,您可以在終端中使用以下命令:

find $HOME -not -user $USER -exec ls -lad {} \;

它將列出不屬於用戶的主目錄下的所有文件。

次佳解決思路

您是否知道有一個名為nautilus-gksu的Nautilus附加功能,在nautilus的右鍵菜單中添加了一個“以管理員身份打開”?

security,root,sudo,gksu,ubuntu

注意:在Ubuntu 12.04及以後版本中不可用。

第三種解決思路

如果您使用sudo啟動圖形應用程序,則可能會弄亂文件的所有權,從而導致應用程序崩潰。永遠不要這樣做。檢查Community Help

You should never use normal sudo to start graphical applications as Root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=~root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by Root. (AFAICT, this is all that’s special about the environment of the started process with gksudo vs. sudo).

第四種思路

sudo默認保留你的$ HOME變量。例如,如果您運行sudo firefox,您將以root權限運行,但是您的配置。如果您在這種情況下更改設置,則最終將得到您的配置的一部分,而不是您的用戶標識。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/645.html,未經允許,請勿轉載。