sudo命令不能用:sudo: /etc/sudoers 屬於用戶 ID 1000,應為 0 && sudo: /etc/sudoers is owned by uid 1000, should be 0 的解決辦法


問題描述:

使用命令更新軟件包的時候遇到了問題:

sudo apt-get update

報錯提示:

sudo: /etc/sudoers 屬於用戶 ID 1000,應為 0
sudo: 沒有找到有效的 sudoers 資源,退出
sudo: 無法初始化策略插件

回顧這個問題的來源應該是我對 /etc 文件夾下面的文件進行修改導致的。

回顧:    (希望看到的人避開這個坑,對這類文件夾操作一定要慎之又慎。)

    之前再進行某項操作的時候,把 /etc/ 文件夾下面的文件全部鎖住了,於是我上瀏覽器搜索解決辦法,解決辦法很好找:https://blog.csdn.net/twlkyao/article/details/9897451  (親試可能會導致上述問題,慎用)

    所以我就按照鏈接里的步驟再/etc目錄下運行了

sudo chown 用戶名 etc/ -R  

    之后再sudo就不能用了,應該是對 sudoers和sudoers.d這兩個文檔的權限進行了修改。

解決思路

  在百度和谷歌上面用中文搜索了半天,sudo不能用的描述和我的這個好像都不太一致,基本上所有方案都試了一遍,包括再recovery models中進入單用戶模式再root下進行修改,都試了一遍。進入單用戶模式的可靠方式                                  https://jingyan.baidu.com/article/f3ad7d0f36675c09c3345b2f.html

  在問了N個人,試了無數個教程,就在我放棄要重裝的時候,都已經打開diskpart了,不甘心調了這么久的環境就這么重裝了,於是鬼使神差的我使用我的蹩腳英文去google上面去搜,一搜果然很多人遇到了和我相同的問題。

  在某個頁面做的挺好看的英文論壇里面找到了答案(鏈接:https://askubuntu.com/questions/513523/sudo-doesnt-work-etc-sudoers-is-owned-by-uid-1000-should-be-0

pkexec chown root:root /etc/sudoers /etc/sudoers.d -R
或者
pkexec visudo

  我選擇了第一個代碼(長的看起來可靠),輸入之后兩個文件的權限應該都進行了修改,可以試用sudo命令了。

  但是多了個提示:

sudo: 無法 stat /etc/sudoers.d/README: 權限不夠

解決辦法很簡單,在root權限下(此時可以用sudo):https://www.cnblogs.com/xiongzaiqiren/archive/2019/06/12/11011296.html

chown -R root:root /etc/sudoers.d
chmod u=rwx,g=rx,o=rx /etc/sudoers.d/
chmod u=r,g=r,o= /etc/sudoers.d/*

大功告成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM