我犯了一个大错误,现在我无法在工作站上做任何事情。我尝试启动 VirtualBox,它抱怨 /usr 具有执行权限。然后我错误地执行了 sudo chmod 666 /usr,现在我无法再执行“sudo”了。
我询问了我们的技术部门,他们说 Ubuntu 没有 root 密码,所以他们找不到解决我的错误的任何方法,只能重新安装 Ubuntu,这意味着我将失去我所有的工作。
我希望你们中的任何人都能想出解决这个问题的方法,因为。你认为我应该怎么做才能再次获得 /usr 的访问权限或成为 root 用户?
答案1
如果您刚才这样做了sudo chmod 666 /usr
,那么事情就不会太糟糕 - 因为这只会改变父/usr
目录的权限,而不会改变其中任何子目录的权限。
但是,如果你添加了递归标志-R
,那么你几乎肯定最好重新安装系统。即便如此,没有理由丢失数据:您可以从实时 USB 或 DVD 启动并首先从那里备份您的重要文件。
如果sudo chmod 666
如果你只对目录进行了非递归操作/usr
,并且你有对机器的物理访问权限,那么最简单的解决方法应该是
- 通过 grub 高级菜单启动到恢复模式并选择“Drop to root shell”
以读写模式重新挂载文件系统
mount -o remount,rw /
执行命令
chmod 755 /usr
不添加任何其他命令行选项和不使用任何 shell 通配符。
输入
exit
以继续正常启动
请注意,chmod
位于/bin
而不是/usr/bin
因此不应受到 上的权限的影响/usr
。如果(例如)您要更改目录/bin
或目录/
本身的权限位,则此方法不合适,因为您将无法chomd
从恢复模式执行 - 在这种情况下最好的选择可能是启动任何可用 Linux 发行版的实时 CD/DVD/USB(不必是 Ubuntu);识别并安装损坏系统的根设备(例如,在/mnt
实时系统中);然后chmod 755 /mnt/usr
从实时系统运行。
答案2
您的命令可能已从 /usr/bin/sudo 中删除 SUID 位,正确的权限应该是:
-rwsr-xr-x 1 root root 136808 Aug 17 15:20 /usr/bin/sudo
您应该获取恢复 CD,如上面的注释中所述,然后按照“查找根分区”部分中的步骤进行操作。成功安装后,使用以下命令设置 SUID 位:chmod 4755 /usr/bin/sudo