将 /etc 所有权更改为我的帐户现在已退出 sudo?

将 /etc 所有权更改为我的帐户现在已退出 sudo?

我正在通过 filezilla 处理一些 SFTP 以允许下载和重新上传一些文件,我通过 ROOT 和 chown -R 'myusername' /etc 以及 chmod 777 我的用户帐户 -R /etc 获得所有权

现在我超时了,并尝试再次登录到 root,它给了我错误 sudo: /etc/sudoers 由 uid 1000 所有,应该是 0 sudo: 未找到有效的 sudoers 源,退出 sudo: 无法初始化策略插件 我可以访问所有文件的 /etc 和 777,也可以通过 FTP 访问它们,所以请建议如何恢复对 root 帐户的访问权限,而且此时 root 没有密码,所以我无法运行常规的 pkexec 或 visudo 命令。

请提出解决方案,并询问是否有办法手动重置 /etc/shadow 或 passwd 文件。

我认为它与指示的重复略有不同,因为我也更改了文件的权限。此外,如果我运行 chown root:root /etc/,它将给我 chown root:root /etc chown: 更改“/etc”的所有权:操作不允许

谢谢你!

答案1

解决这个问题最简单的方法可能是重启。以下是我想到的两种解决方案:

  1. 启动 ubuntu livecd 并挂载已有的设备/etc。然后执行chown -R root:root /path/to/etc

  2. 如果您没有 livecd 或无法启动 livecd,请尝试以下步骤。重新启动计算机。当您进入 grub 提示符时,使用要linux附加的命令编辑该行上的启动项break=bottom(这可能需要您<shift>在启动时按住 键)。然后按下<F10>键以启动修改后的启动项。这将为您提供 initrd 中的 root shell,其中/dev安装了 rootfs 和 。接下来将/bin/chroot /rootchroot 到 rootfs 中。如果/etc不在 rootfs 上,则将设备安装在 处/tmp。然后您可以执行chown -R root:root /path/to/etc。如果您安装了/etc,请确保在完成后将其卸载,然后退出 chroot 和 initrd shell 以继续正常启动。您的/etc文件应该具有所有 root 权限。

相关内容