无需使用 root 的登录 shell 即可获得 root 访问权限

无需使用 root 的登录 shell 即可获得 root 访问权限

当 zsh 仍然是默认 shell 时,我通过删除 zsh 来阻止 root 用户的登录。现在,结果将登录失败,因为登录时它将尝试使用/bin/zsh(1),而该(1)丢失了。

只有一名其他用户仍然可以执行代码,但几乎没有任何权限。我尝试通过su(2)和其他各种方式提升权利,但sudo没有成功。有什么办法可以使用命令来解决这个问题吗?

作为最后的手段,我会尝试将服务器启动到 Live CD 并直接更改文件存储。但我更愿意避免这种情况,因为它会导致停机,并且在发生故障时也使我无法重新启动所有当前正在运行的服务。服务器运行的是 CentOS。

(1)

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh

(2)

$ echo my-root-password | su --shell=/bin/bash - root -c 'yum install zsh -y'
Password: su: using restricted shell /bin/zsh
su: failed to execute /bin/zsh: No such file or directory

(密码是通过管道输入的,因为运行代码不是在交互式 shell 中完成的。)

编辑: 感谢您的所有建议!遗憾的是,它们都不适用,所以我不得不接受停机。我花了比我希望的时间更长的时间,尝试了很多不起作用的方法,但回顾起来,以下步骤解决了问题:

我改变了启动参数能够对服务器进行一些基本控制。编辑了该/etc/passwd文件,最后禁用了 SELinux,因为它有一些策略导致身份验证服务在启动时失败。

相关内容