‘sudo chmod 666 /usr’ 之后 ‘sudo’ 权限被拒绝

‘sudo chmod 666 /usr’ 之后 ‘sudo’ 权限被拒绝

我犯了一个大错误,现在我无法在工作站上做任何事情。我尝试启动 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,并且你有对机器的物理访问权限,那么最简单的解决方法应该是

  1. 通过 grub 高级菜单启动到恢复模式并选择“Drop to root shell”
  2. 以读写模式重新挂载文件系统

    mount -o remount,rw /
    
  3. 执行命令

    chmod 755 /usr
    

    添加任何其他命令行选项和使用任何 shell 通配符。

  4. 输入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

相关内容