我无法以 root 身份登录。
我的'/etc/passwd'
文件如下
root:x:0:0:root:/root:which zsh
....
....
我问过类似的问题“如何在没有 root 权限的情况下将 shell 更改为原始 shell (/bin/bash)?”我提出了建议,但到现在还没有起作用。
[]@[]:~$ su - root
Password:
Cannot execute which zsh: No such file or directory
[]@[]:~$ su - -s /bin/bash
Password:
Cannot execute which zsh: No such file or directory
[]@[]:~$ su - -s /bin/bash root
Password:
Cannot execute which zsh: No such file or directory
[]@[]:~$ su -s /bin/bash root
Password:
Cannot execute which zsh: No such file or directory
对于这种情况有什么建议吗?
答案1
使用以下命令,替换/bin/sh
为您喜欢的 shell:
SHELL=/bin/sh sudo -s
此命令首先将SHELL
环境变量临时设置为/bin/sh
您选择的任何 shell。然后它调用sudo -s
登录到变量定义的 shell SHELL
。
参见示例终端日志。请注意ps
一次显示的输出bash
(我的默认 shell),一次显示sh
为层次结构中的第二个进程,以及不同的提示。
$ sudo -s
root: ~ # ps
PID TTY TIME CMD
23103 pts/2 00:00:00 sudo
23104 pts/2 00:00:00 bash
23146 pts/2 00:00:00 ps
root: ~ # exit
ipc-admin: ~ $ SHELL=/bin/sh sudo -s
# ps
PID TTY TIME CMD
23190 pts/2 00:00:00 sudo
23191 pts/2 00:00:00 sh
23200 pts/2 00:00:00 ps
# exit
$
答案2
尝试改变运行级别在启动时,首先运行级别 1.
然后您将成为 root 并可以编辑每个文件。
如果使用 LILO,请输入 [Ctrl]-[X] 进入 boot: 提示符。然后输入:
linux 1
如果使用 GRUB,请按照以下步骤操作:
- 在图形化 GRUB 引导加载程序屏幕中,选择一个标签并按 [e] 进行编辑。
- 向下箭头到内核行并按 [e] 进行编辑。
- 在提示符下,输入您想要启动的运行级别的编号(1 到 5),或者单词 single 或 emergency,然后按 [Enter]。就你的情况而言 1
- GRUB 屏幕再次出现,其中包含内核信息。按 [b] 键启动系统。
当你在单用户模式,您是 root。使用vi
(或nano
或pico
...)并更正您的/etc/passwd
文件。
参考: