将 shell 设置为 /sbin/nologin 后重新获得 root 访问权限

将 shell 设置为 /sbin/nologin 后重新获得 root 访问权限

/etc/passwd 我按照以下方式在我的服务器上编辑了该文件:

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

现在我无法以 root 身份登录。当我输入su命令时,Cannot execute /sbin/nologin: No such file or directory控制台中显示。

我无法物理访问该服务器。sudoers 文件中没有用户。

您能帮助我以 root 身份登录吗?

答案1

如果你没有任何 sudoers — — 那你就搞砸了:)

恐怕您需要有物理访问权限和 Live CD/USB 才能解决此问题。

答案2

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

  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 看到的控制台的示例图片

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

相关内容