更改根文件夹和子文件夹的所有者(Ubuntu 13.04)

时间:2013-07-03 15:06:08

标签: linux unix ubuntu sudo chown

我意外地通过命令

将根文件夹(/)和所有子文件夹的所有者设置为一个用户
$ 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?

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

:哦,我表示哀悼!

问题是sudo二进制文件本身必须由root拥有。如果你有root密码,你可以直接修复问题:

su

如果没有,您可以使用救援系统启动,安装分区和

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

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

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

答案 2 :(得分:2)

你的系统非常糟糕。下次使用sudo时要更加小心。

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

根据您使用chown更改了多少,您必须在步骤3中修复很多。您可能想要查看正确安装的工作相同的系统,以找出哪些用户应该是/dev/mem等所有者的所有者。

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