我运行的每一个命令都会让我以 root 身份被拒绝,这种情况发生在我更改 /etc/fstab 并重新挂载 ext4 后不久。
我似乎能够运行的唯一命令是 echo 和 cd,这并不是说它有多大帮助,我尝试过的所有其他命令都显示以下内容:
bash: /bin/ls: Permission denied
bash: /bin/bash: Permission denied
bash: /bin/mount: Permission denied
bash: /bin/chmod: Permission denied
所有正在运行的程序都在继续运行,我也无法通过 SSH 连接,因为这也会导致我的权限被拒绝,因此只有我现有的连接正在工作。我相信这可能是由 noexec 引起的,但我无法运行 mount 来修复它,并且它位于根文件系统上。另外,如果可能的话,我宁愿不重新启动,因为它在 fstab 中更改了,所以很可能会再次发生。
我已经用尽了我所有的想法,搜索 mount 或 chmod 都没有帮助,因为它们像我想到的几乎所有其他命令一样被拒绝。
答案1
echo
和cd
是 shell 内置命令,这就是它们仍然“运行”的原因。
要修复 fstab,请运行命令
while read x; do echo "$x"; done < /etc/fstab
这将显示 /etc/fstab 的内容,然后运行
while read x; do echo "$x"; done > /etc/fstab
这将破坏/etc/fstab
(一件非常糟糕的事情)但允许您将其替换为您在终端输入的内容。
然后继续输入(或者如果幸运的话,复制并粘贴)/etc/fstab
修改后的原始内容,以便您可以再次在根文件系统上执行内容。
使用 Control-D(或任何 tty eof 字符)终止输入,然后重新启动(或重置/重新启动)计算机。
干净地重新启动可能会很困难,因为它需要运行一些东西来做到这一点,所以你可能会被迫重置/重新启动电源 - 但如果缓冲区缓存尚未刷新到磁盘,这可能会有风险......你能做的最好就是在做之前给它一点时间。