sudo:“有效uid不為0,是否sudo安裝了setuid root?”在樹莓派上

sudo:“有效uid不為0,是否sudo安裝了setuid root?”在樹莓派上

我已經使用 Raspberry Pi 幾個星期了,並花了很多時間為我的大學專案配置一切。

我想安裝 Samba 並將所有內容都當作網路資料夾。我用了sudo chown -R pi:pi /

現在,我的 sudo 已損壞,並且sudo: effective uid is not 0, is sudo installed setuid root?每次運行時都會列印(例如,sudo nano)。

這個可以修復嗎?請幫幫我,這樣我就不必重新安裝一切。我甚至不記得過去幾週我做了什麼…太多的工作。

答案1

運行sudo chown -R pi:pi /基本上破壞了系統上每個檔案的所有權。

不幸的是,對於您的情況,重新安裝可能是最簡單的選擇。嘗試手動恢復正確的所有權(大概使用不同的計算機)將非常乏味且容易出錯。我建議您在重新安裝之前對 Raspberry Pi 的儲存進行映像,以便在重新安裝後,您可以恢復所做的一些變更。

答案2

可執行檔中的位元setuid表示相關檔案可能會將其有效 UID 變更為擁有使用者的 UID,而不是呼叫/執行使用者的 UID。

透過運行,sudo chwon -R pi:pi /您將sudo被使用者擁有pi(非零 UID),因此,當sudo檢查它是否可以將其有效 UID 更改為 0 ( root) 時,它發現它不能,因為它不再被擁有root

您可以嘗試透過執行chown root:rootover來修復它sudo,但它可能會說您沒有足夠的權限來執行此操作,因此重新安裝可能是唯一的可能性。

答案3

最簡單的方法是尋找並儲存「過去幾週」修改過的所有文件,然後重新安裝並重新套用變更。

  1. 啟動救援磁碟。
  2. 尋找並儲存「最近」變更的檔案 -cd /mnt/root && tar czvf /mnt/usb/tarball.tgz --newer-mtime='2015-10-01 00:00:00' .確保這/mnt/root是 Pi 系統的根目錄而不是救援磁碟的根目錄,並且該檔案/mnt/usb位於安全的地方,例如 USB 記憶棒
  3. 重新安裝
  4. 恢復您精心保存的文件 -cd / && tar xzvf /root/tarball.tgz
  5. 重啟

相關內容