![将 shell 设置为 /sbin/nologin 后重新获得 root 访问权限](https://linux22.com/image/1041392/%E5%B0%86%20shell%20%E8%AE%BE%E7%BD%AE%E4%B8%BA%20%2Fsbin%2Fnologin%20%E5%90%8E%E9%87%8D%E6%96%B0%E8%8E%B7%E5%BE%97%20root%20%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90.png)
/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
您可以通过以下几种方式来恢复:
- 使用具有足够权限的另一个用户登录来更正此问题。这显然需要具有足够权限的第二个用户,但如果服务器有多个管理员,这种情况并不罕见。(每个管理员都有自己的用户名和管理员帐户)。
- 从另一个操作系统启动(例如实时 CD 或笔式驱动器)。安装磁盘并更正 root 的 shell。(很容易做到如果您具有物理访问权限,但您写道事实并非如此)。
- 从另一个操作系统(例如实时 CD 或笔式驱动器)启动。安装磁盘并在通过 DRAC、ILO 或类似程序远程访问控制台时更正 root 的 shell。后者对于服务器来说很常见,您甚至可以指向本地 ISO 文件作为伪 CD。
- 以单用户模式启动服务器。(例如在 GRUB 中添加
single
或1
到内核参数。这会将您带入 shell。然后请当地人为您更改 shell。(或者如果是 DRAC/ILO,请自己更改)。 - 如果您有有权关闭服务器的用户,但没有权限编辑 /etc/passwd。请将服务器关闭到运行级别 1。这将使服务器进入单用户模式,您可以从控制台编辑设置(再次需要 HP 的 ILO、Dell DRAC 或类似设备)。
- 如果该服务器上有第二个操作系统(或救援安装),则启动该操作系统并编辑文件。
不管你做什么:进行此类更改时切勿注销。
请先进行测试(例如启动第二个连接)。