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