在 ubuntu 服务器 14.04 中以 root 身份登录

在 ubuntu 服务器 14.04 中以 root 身份登录

我无法以 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(或nanopico...)并更正您的/etc/passwd文件。

参考:

相关内容