6

我不小心通过命令将根文件夹 (/) 和所有子文件夹的所有者设置为一个用户

$ sudo chown -R 'userName' /*

现在我想通过命令将所有者设置回root用户

$ chown -R root:root /*

但是我没有这个操作的权限。如果我使用命令

$ sudo chown -R root:root /*

它返回

 sudo: effective uid is not 0, is sudo installed setuid root?

我应该怎么做才能解决这个问题?

4

3 回答 3

3

我猜当你运行第一个命令时,你最终也修改了/usr/bin/sudo可执行文件的所有权。

意思是有效的 UID 不是 0 (因为 root 的 EUID 等于 0)

所以尝试更改所有者/usr/bin/sudo,然后尝试更改其他文件的所有权。

于 2013-07-03T15:14:50.740 回答
2

:OI 表示哀悼!

问题是 sudo 二进制文件本身必须由 root 拥有。如果你有 root 密码,你可以通过 root 来解决问题:

su

如果没有,您可以使用救援系统启动,挂载分区并

chown root:root /mnt/usr/bin/sudo

或使用救援系统解决整个问题。

但是很难修复所有这些所有权。我建议制作一个脚本,从系统的普通安装中读取文件所有权(已安装与您相同的软件包)并将它们应用于崩溃的系统。(/home/ 中的自定义文件...你必须chown自己)如果没有这样的脚本,它会变得非常困难,但它应该很容易编写代码

于 2013-07-03T15:12:54.133 回答
2

你严重破坏了你的系统。下次使用时更加小心sudo

  • 现在,使用救援磁盘启动您的系统,可能是您的安装磁盘。
  • 在救援系统中安装损坏的文件系统。
  • 修复权限/所有者的东西。
  • 使用您的原始系统重新启动。

根据您使用它进行了多少更改chown,您将不得不在步骤 3 中修复很多内容。您可能希望查看同一系统的正常安装,以找出哪个用户应该是诸如/dev/memetc之类的东西的所有者.

重新安装操作系统可能会更快。

于 2013-07-03T15:14:18.847 回答