無法 sudo - ubuntu 20.04

無法 sudo - ubuntu 20.04

一個經典錯誤

我們錯誤地sudo chown -R ubuntu:www-data /在 ubuntu 20.04 AWS EC2 伺服器上執行了此操作。雖然有很多帖子表明我無法挽救機器並且必須重新安裝新機器 - 我想獲取在此伺服器上運行的 postgres 的副本。目前我們無法使用 sudo 執行任何指令。因此我們無法啟動 postgres 或透過 phppgadmin 登入。

我們做了以下工作:

  1. 停止實例
  2. 分離捲
  3. 建立了一個新實例
  4. 附上捲
  5. 已安裝卷
  6. 在新實例中更改為 root
  7. 做了chown -R root:root /mnt/rescue(將其更改為root:ubuntuubuntu:ubuntu等)
  8. 做了chmod -R 4755 /mnt/rescue(也做了0755ug-s等等)
  9. 退出根目錄
  10. umount /mnt/rescue
  11. 關閉救援實例
  12. 分離音量
  13. 將磁碟區附加到損壞的電腦。機器指示新所有者 - 但 sudo 不起作用。
  14. 我們嘗試建立一個新實例 - 附加此更正後的捲,更新 /etc/fstab - 重新啟動實例。我們將磁碟區與機器合併。重新啟動後 - 仍然是相同的問題 - 無法 sudo。

我們當然可以重新建立機器或進行備份和還原。然而,一些關鍵任務資料駐留在 postgres 中。我如何 sudo,或從死掉的 postgres 中檢索文件。

我們常面臨這樣的錯誤:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

但是,當我在 /usr 或 /usr/bin 內的任何位置執行 ls -l 時 - 所有檔案的全部所有權仍屬於 ubuntu:ubuntu 或我們嘗試過的其他組合。

答案1

嘗試設定 setuid 位元並使其對 root 可執行,這是 sudo 的預設權限 (rws)

chmod u+s /mnt/rescue/usr/bin/sudo
chmod +x /mnt/rescue/usr/bin/sudo

雖然這對於恢復系統很有用,但還有許多其他檔案和目錄具有不同的此類權限和所有權,單獨設定它們可能會很乏味。

相關內容