/etc
昨天我意外地使用此命令更改了文件夹组的所有者:
sudo chown -R pts:apache /etc
我这样做是为了从我的终端上传文件。后来当我尝试将其改回时,root:root
它显示了此错误:
sudo: /etc/sudo.conf is owned by uid 1001, should be 0
sudo: /etc/sudo.conf is owned by uid 1001, should be 0
sudo: /etc/sudoers is owned by uid 1001, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo
由于这个原因,我不能再使用了。
我该如何解决这个问题?谢谢。
答案1
尝试这个命令
pkexec chown root:root /etc/sudoers /etc/sudoers.d -R
答案2
/etc 中并非所有文件都是root:root
.
您可以使用 Gryu 或 berkancetin 提供的命令,但需要更改一些文件:
-rw-r----- 1 root daemon 144 Oct 21 2013 at.deny
drwxr-sr-x 2 smmta smmsp 4096 Apr 1 2016 mail
-rw-r----- 1 root shadow 1110 Aug 10 2018 gshadow
drwxr-s--- 2 root dip 4096 Apr 28 2019 chatscripts
-rw-r----- 1 root shadow 1462 Aug 5 2019 shadow
还可以有更多(因为这个列表来自我的一台机器)
答案3
在这种情况下,这三种方法都有效:
从 LiveCD 启动(带有无需安装即可试用 Ubuntu选项),在 liveCD 中挂载你的根分区并
/etc
使用它来更改文件夹的所有者:$ sudo mount -t ext4 -o rw /dev/sda1 /mnt $ sudo chown -R root:root /mnt/etc
重启
或者,如果你知道 root 的密码:
$ su # chown -R root:root /mnt/etc
测试了两种版本并且都可以正常工作。
berkancetin 的方法也有效:
$ pkexec chown root:root /etc/sudoers /etc/sudoers.d -R $ sudo chown -R root:root /etc $ ls -ailh / | grep etc 1046529 drwxr-xr-x 139 root root 12K кві 22 12:38 etc
对于不属于 root 的文件和目录(如 Rinzwind 所述),您可以运行:
sudo chown root:daemon /etc/at.deny
sudo chown -R root:bind /etc/bind
sudo chown -R root:dip /etc/chatscripts
sudo chown -R root:lp /etc/cups
sudo chown root:shadow /etc/*shadow*
sudo chown -R root:landscape /etc/landscape
sudo chown mpd:audio /etc/mpd.conf
sudo chown -R postgres:postgres /etc/postgresql
sudo chown -R root:dip /etc/ppp
sudo chown -R smmta:smmsp /etc/mail
/etc/
您可以从其他具有几乎相同配置的正常运行的 ubuntu 机器上获取不属于 root 的文件和目录列表。