2013-07-03 50 views
6

我根文件夹(/)和命令通过所有子文件夹给一个用户更改所有者和子文件夹(Ubuntu的13.04)

$ 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? 

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

回答

2

:O我表示吊!!

问题是,sudo二进制本身必须由root拥有。如果你有root的密码,你可以只得到根本解决该问题:

su 

如果没有,你可以开机使用救援系统,挂载分区和

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

或解决问题的全部使用救援系统。

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

2

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

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

根据您改变了多少使用chown,你将不得不解决很多在第3步你可能可能想看看在同一系统的工作正确安装,以找出哪些用户应该是像/dev/mem等东西的所有者。

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

3

我猜你在运行第一个命令时最终还是修改了可执行文件的所有权。

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

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