我曾经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。