我使用了 sudo chown -R yourusername:yourusername /etc 但无法将其恢复

我使用了 sudo chown -R yourusername:yourusername /etc 但无法将其恢复

我曾经sudo chown -R yourusername:yourusername /etc访问过该文件夹以删除一些文件,但现在当我尝试安装东西时出现错误,如下所示,并且似乎无法将其恢复正常。

vk137@alternate:~$ sudo apt-get install pulseaudio
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

对于类似的问题,建议重新挂载文件系统,但我似乎也无法做到这一点:

vk137@alternate:~$ mount -o remount,rw /
mount: only root can use "--options" option

我怎样才能将 /etc 的访问权限重新交到正确的人手中?

答案1

将其 chown 为 root:root 并不能解决所有问题,请尝试在另一台 PC 或 VM 上安装相同的 Ubuntu 版本,安装您当前已安装的所有软件包并运行以下命令:

sudo find /etc -exec stat --format 'chown %U:%G %n' {} \; >> restore.sh

它将编写一个包含来自健康 /etc 的权限的脚本,内容如下:

...
chown root:dip /etc/ppp/peers/provider
chown root:lp /etc/cups/subscriptions.conf 
chown root:lp /etc/cups/printers.conf 
chown root:root /etc/cups/raw.types 
chown root:root /etc/cups/smfp.types 
chown root:lp /etc/cups/printers.conf.O 
...

将 restore.sh 复制到您当前有问题的 Ubuntu 并使用 sudo 运行它以恢复您的权限。

答案2

这个问题与这里的其他问题类似,但并不相同。我设法通过重新启动进入恢复模式,然后使用以下命令解决了此问题:

mount -o rw,remount /

这将整个驱动器重新安装为读写

chown -hR root:root /etc

这会将 /etc 的权限重新设置给用户 root 和用户组 root。

相关内容