如果沒有突然成為 root,我就無法在 ubuntu 中執行任何操作。當我運行 emacs 時,它說它無法存取檔案(並且將在 sudo 中運行並且工作正常)。 Firefox 會引發安全性問題,直到我 root 等,並且不知道如何解決此問題。
我進入 su 並清除了 sudo 並重新安裝,認為這可以修復它(bc 在某一時刻我使用 emacs 與 visudo 編輯了我的 sudoers 文件)但無濟於事。有任何想法嗎?這是一次非常煩人的經歷
編輯:了解更多。在此之前,我嘗試將 Virtualbox 作為 sudo (GUI 版本)運行,但遇到問題,說它無法訪問給定的機器。所以我想確保我的所有命令都以 root 身份運行,所以我將自己添加到 sudoers 文件中(用戶名 (ALL) = (All) 等語法),並且一段時間內一切正常。然後這些問題出現在 firefox 和 emacs 等上,所以我猜測不知何故我已經在不知不覺中將自己從過去確實有權訪問這些文件的群組中刪除了
編輯2:對於emacs 啟動時的特定錯誤,它顯示「無法開啟載入檔:/home/path.../.emacs.d/elpa/asynch-20151104.2113/async-pkg ...現在只有當我不執行時才會發生這種情況sudo 從終端。
答案1
聽起來您的主目錄中有 root 擁有的檔案。
這可能是由於過去使用 sudo 運行應用程式以及這些應用程式將檔案保存到您的主目錄造成的。
要在主目錄中尋找 root 擁有的檔案列表,請嘗試
find /home/ -uid 0
然後,您可以根據需要將它們傳回給您的用戶。
chown myuser:myuser -R [files]
其中 files 是特定檔案或子目錄。在整個主目錄中執行這樣的命令通常不是一個好主意,因為某些檔案所有權可能會被破壞。商榷或某事所必需的。
至於導致問題的原因,某些應用程式在正常運作期間會在您的主目錄中儲存文件,例如設定檔或快取檔案。這在圖形應用程式中很常見,但某些非圖形應用程式仍然可能這樣做。現在,如果您使用sudo
,並且應用程式執行此操作,它將在您的主目錄中建立 root 擁有的檔案。然後,將來嘗試運行該應用程式沒有root可能會失敗,因為現在有些檔案只能由root開啟。
解決方案是將這些文件的所有者更改回您的用戶,或者如果您認為它們不重要,則將其刪除。
為了避免將來出現這個問題,當使用 sudo 時,您可以使用
sudo -H [command]
如果它是圖形應用程序,您也可以使用
gksudo [command]
這告訴應用程式使用 root 使用者的主目錄而不是您自己的主目錄。