在“sudo chmod 666 /usr”之後,“sudo”的權限被拒絕

在“sudo chmod 666 /usr”之後,“sudo”的權限被拒絕

我犯了一個大錯誤,現在我在我的工作站上什麼也做不了。我嘗試啟動 VirtualBox,但它抱怨 /usr 具有執行存取權限。然後我錯誤地執行了 sudo chmod 666 /usr ,現在我無法再執行「sudo」了。

我問我們的技術部門,他們說 Ubuntu 沒有 root 密碼,所以他們看不到我的錯誤的任何解決方案,但必須重新安裝 Ubuntu,這意味著我將失去所有工作。

我希望你們中的任何人都能想出解決這個問題的方法,因為。您認為我應該怎麼做才能再次獲得 /usr 的存取權限或成為 root 使用者?

答案1

如果您剛剛這樣做,sudo chmod 666 /usr那麼事情還不錯 - 因為這只會更改父/usr目錄的權限,而不會更改其中子目錄的任何檔案。

但是,如果您添加了遞歸標誌-R,那麼您幾乎肯定最好重新安裝系統。即使是這樣,應該沒有理由丟失數據:您可以從即時 USB 或 DVD 啟動並先從那裡備份重要檔案。

如果sudo chmod 666您只對目錄進行了非遞歸/usr,並且您可以物理訪問計算機,那麼最簡單的修復應該是

  1. 透過 grub 進階選單啟動進入復原模式並選擇“Drop to root shell”
  2. 以讀寫模式重新掛載檔案系統

    mount -o remount,rw /
    
  3. 執行命令

    chmod 755 /usr
    

    添加任何其他命令行選項並使用任何 shell 通配符。

  4. 鍵入exit以繼續正常啟動


請注意,chmodlives in/bin而不是/usr/binso 不應受到 上權限的影響/usr。如果(例如)您要更改目錄/bin或目錄/本身的權限位,那麼此方法將不合適,因為您將無法chomd從恢復模式執行 - 在這種情況下最好的選擇可能是啟動任何可用Linux 發行版的Live CD/DVD/USB(不需要是Ubuntu);識別並安裝損壞系統的根設備(/mnt例如,在即時系統中);然後chmod 755 /mnt/usr從實時系統運行。

答案2

您的命令可能已從 /usr/bin/sudo 中刪除了 SUID 位元 正確的權限應該是:

-rwsr-xr-x 1 root root 136808 Aug 17 15:20 /usr/bin/sudo

您應該獲得一張恢復 CD,如上面的評論中所述,並按照“查找根分區”部分中的步驟進行操作。成功安裝後,使用以下指令設定 SUID 位元: chmod 4755 /usr/bin/sudo

相關內容