说我搞砸了才对!
不小心,我将 /usr/bin 中所有文件的所有者从“root”更改为“dev”。现在,sudo 不起作用了!如果我将 sudo 与任何命令一起使用,我会得到 -
sudo: effective uid is not 0, is sudo installed setuid root?
我无法使用chown
命令将所有者更改回“root”。这是一个重大挫折!
由于这是虚拟机,我无法访问故障恢复控制台。事实上,即使该reboot
命令也需要用户具有“root”访问权限。
专家们,请帮助我控制操作系统而无需重新映像。
谢谢!
PS-可能是复制但重新发布他的解决方案是重新开始。
更多信息 -
su - root
总是说密码错误。不幸的是,其所有者su
也是“dev”。
我可以使用 GUI 创建一个新用户。它接受了 root 密码。如何在不使用 visudo 的情况下授予新用户 root 访问权限。
答案1
物理安全就是安全。您有三个选择:
- 从控制台或通过 ssh 以 root 身份登录。
- 以单用户模式启动,传统上不需要 root 密码(但可能在您的系统上)。
- 从另一个操作系统挂载磁盘映像。
其中任何一个都使您能够更改磁盘上任何文件的所有权。如果您不可以选择其中任何一个,那么您就不走运,但您也无法控制:其他事情(不是错误)可能会发生,需要控制台访问。
答案2
如果不启动虚拟机并模仿您的情况,我无法确定什么,但我可能会做的是,如果您可以有一个文件作为虚拟机的外部介质,则启动 Live CD/USB 发行版( Knoppix,或默认的 archiso,或 Gentoo 安装 CD,或 Porteus),然后执行一些操作,例如使用损坏的 /usr/bin 挂载文件系统(也许使用cd /; mkdir /backup; cp /mnt/centos/usr/bin /backup
,复制您要保存的二进制文件以及chown -hR 0 /backup; chmod 755
它们或您选择的任何文件) /usr/bin 的权限是,然后删除 /usr/bin仅有的损坏的东西(如果要修复的文件系统安装在/mnt/centos,则用于最后一条指令的命令将是rm -r /mnt/centos/usr/bin
),那么“And”行中的某些内容cp /backup /mnt/centos/usr/bin
可能会起作用。不过,暂时不要这样做,因为我还没有启动虚拟机来测试这一点。如果你不能使文件充当外部可启动介质,那么我认为您需要在备份要保存的所有文件后重新安装。我希望这个答案对你有好处。