如何恢复 /root/.bashrc 因为 sudo su 出现分段错误(核心转储)

如何恢复 /root/.bashrc 因为 sudo su 出现分段错误(核心转储)

/root/.bashrc我有一个专用的远程 Web 服务器。我通过添加搞乱了文件source /root/.bash_profile。它在 sudo su 上发生核心转储。

$ sudo su
Segmentation fault (core dumped)

我也无法使用 root 通过 ssh 登录服务器。

我做不到sudo su

我可以将服务器重新启动到救援模式。

我如何恢复 .bashrc 文件?

答案1

很少有理由使用sudo su

您可以使用 获得 root shell ,或者使用 获得sudo -sroot 登录 shell(相当于sudo su --login// sudo su -l)。在 的情况下,如果设置了变量,则运行的 shell 是由变量指定的,否则由调用用户的密码数据库条目指定的 shell。sudo su -sudo -lsudo -sSHELL

因此,如果您搞砸了,/root/.bashrc您可以尝试以下一些选项:

  1. 直接调用非 bash 交互式 shell 例如sudo sh

  2. 通过以下方式调用非 bash 交互式 shellSHELL=/bin/sh sudo -s

  3. 直接调用 bash,跳过资源文件,sudo bash --norc

  4. 暂时重命名有问题的文件,例如sudo mv /root/.bashrc /root/.bashrc.old

原则上,你也可以使用以下命令调用 root 登录 shell,sudo -l因为 bash 登录 shell 读取~/.profile而不是~/.bashrc 然而默认的 Ubuntu 配置源自$HOME/.bashrc$HOME/.profile以便为交互式登录 shell 和非登录 shell 提供相同的外观和感觉。如果您有一个非默认的/root/.profile,或者/root/.bash_profile/root/.bash_login,则可以避免获取损坏的.bashrc

相关内容