失去 root 访问权限的可能性 /sbin/nologin

失去 root 访问权限的可能性 /sbin/nologin

/etc/passwd 我意外地以下列方式编辑了我的服务器上的文件:

root:x:0:0:root:/root:/sbin/nologin

现在我无法以 root 身份登录。当我输入su命令时,控制台中显示以下内容:

无法执行 /sbin/nologin:没有此文件或目录

我无法物理访问服务器,并且我的用户不在 sudoers 文件中。

我正在运行 Ubuntu Server Linux 2.6.24-23-server

我如何重新获得 root 用户的访问权限?

答案1

您可以通过以下几种方式来恢复:

  1. 使用具有足够权限的另一个用户登录来更正此问题。这显然需要具有足够权限的第二个用户,但如果服务器有多个管理员,这种情况并不罕见。(每个管理员都有自己的用户名和管理员帐户)。
  2. 从另一个操作系统启动(例如实时 CD 或笔式驱动器)。安装磁盘并更正 root 的 shell。(很容易做到如果您具有物理访问权限,但您写道事实并非如此)。
  3. 从另一个操作系统(例如实时 CD 或笔式驱动器)启动。安装磁盘并在通过 DRAC、ILO 或类似程序远程访问控制台时更正 root 的 shell。后者对于服务器来说很常见,您甚至可以指向本地 ISO 文件作为伪 CD。
  4. 以单用户模式启动服务器。(例如在 GRUB 中添加single1到内核参数。这会将您带入 shell。然后请当地人为您更改 shell。(或者如果是 DRAC/ILO,请自己更改)。
  5. 如果您有有权关闭服务器的用户,但没有权限编辑 /etc/passwd。请将服务器关闭到运行级别 1。这将使服务器进入单用户模式,您可以从控制台编辑设置(再次需要 HP 的 ILO、Dell DRAC 或类似设备)。
  6. 如果该服务器上有第二个操作系统(或救援安装),则启动该操作系统并编辑文件。

通过 DRAC 看到的控制台的示例图片

不管你做什么:进行此类更改时切勿注销。
请先进行测试(例如启动第二个连接)。

答案2

做的时候遇到了同样的问题远程控制"Cannot execute /sbin/nologin: No such file or directory"到远程服务器。通过以下命令结束命令来删除该消息:

-t /bin/bash

希望它能对某人有所帮助。

答案3

在救援模式下从 Live CD 启动系统,您可以从中挂载文件系统并编辑文件/etc/passwd。除非您有远程 KVM 或 HP 的 iLO 等产品,否则您将需要物理访问服务器。

或者,

如果有其他用户,您可以通过 sudo 执行此操作。

或者,您可以查看您向其提问的其他网站:

答案4

我可能遗漏了一些东西,但这似乎很容易解决。

如果你能做到su,你知道你也能做到su -s /bin/bash,对吗?

相关内容