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/*

大功告成。

猜你喜欢

转载自www.cnblogs.com/vtas-Yao/p/12443730.html