Vin*_*edo 0 shell bash debian su
每当我su在我的 Debian 机器上以普通用户身份登录时尝试使用 su 到 root 时,它会默默地失败,将我转回原始用户和 shell。在搜索此问题时,我遇到了一些解决方案,该解决方案解释说,如果我尝试登录的用户在/etc/passwd. root:x:0:0:root:/root:/bin/bash.
我可以 su 到 root 的唯一方法是:
su -s /bin/sh
Run Code Online (Sandbox Code Playgroud)
因为它看起来像问题与bash安装本身,我尝试重新安装bash使用apt-get install --reinstall bash,同时作为根用户登录,但错误依然存在。如何仅使用 bash 就可以登录到 root 用户su?
我只是注意到,如果在输入 root 密码后按 Enter 和被转储回我的原始用户之间的时间跨度内,我尝试按ctrl+ c,su工作并且我在 bash 中以 root 身份登录。
如果我root使用 shell登录并/bin/bash从那里运行,它会返回一个分段错误错误。
我试过跑步/bin/bash -x。它似乎永远运行打印/opt/spark//bin:/opt/spark//bin:/opt/spark//bin。当被迫用ctrl+停止时c,它bash与root用户一起运行,就好像什么都没发生一样。strace /bin/bash似乎表明该命令试图/root/.bashrc一遍又一遍地打开,直到出现段错误。
您的问题源于~/.bashrc文件中的无限循环:
export SPARK_HOME=/opt/spark/
export PATH=$PATH:$SPARK_HOME/bin
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
当放入你的 ~/.bashrc 文件时,你将成功地 su 到用户并运行你的 shell,但你永远不会得到提示。
最小的解决方法是注释掉该source行。
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |