使用 chmod 后无法打开终端

使用 chmod 后无法打开终端

我的 Ubuntu 出现问题,我安装了 tomcat 服务器并进行了设置,但我需要更改一个目录并授予我当前用户对它的读取权限,因此我执行了:

chmod -R 644 /bin

从那时起我一直收到错误,例如如果我尝试更改目录,我会得到没有这样的命令的输出,所以我尝试重新打开它(终端),现在当我再次尝试打开终端时它会自动关闭,有人可以解释为什么会发生这种情况,有没有办法扭转它?

答案1

请不要为了读取 root 拥有的文件而更改权限。以后,如果您想读取您无权访问的文件,请使用sudo cat或或以 root 权限打开文本编辑器。如果您认为出于某种原因确实需要更改权限,请先进行研究或提出相关问题。使用和sudo less很容易破坏您的系统。chownchmod

无论如何,你的用户已经对该目录及其所有内容具有读取权限。该/bin目录具有权限755rwxr-xr-x,其绝大部分内容也具有权限。任何用户都可以读取和执行它们。

您删除了执行位(644= rw-r--r--),使得所有人都可以读取文件,root 可以写入文件,但任何用户都无法执行文件。

当您从目录中删除执行位时,除 root 之外,其他人都无法进入该目录。

当您从文件中删除执行位时,您将无法执行该文件,即使是 root 也无法执行。

Bash 程序位于/bin/bash。您已使其所在目录不可访问,并且您已使二进制文件本身不可执行,因此甚至 root 也无法运行它。chownchmod也位于 中/bin,因此您甚至无法使用另一个 shell 来运行它们(如果您碰巧有一个不在 中的 shell)/bin

重新安装系统是确保一切正确的最佳方法,但如果您想尝试修复它或您真的想避免这种情况,您可以做的是从实时系统启动(例如 USB 安装介质或系统恢复),挂载根分区,然后从那里更改权限。请参阅terdon 的回答在这里实现此目的的最佳方法(用 替换/etc/bin使用 代替chmodchown

相关内容