是否可以更改用户的 root shell?

是否可以更改用户的 root shell?

我想我面临的问题并不常见。我写

chsh -s /bin/false root

现在我无法登录root。我有什么办法可以登录吗root?当我尝试命令时

chsh -s /bin/true root

我得到的答案是我可能不会更改 shell root,当然,当我尝试编辑/etc/passwdwith时nano,我收到消息说我没有权限这样做。

那么有什么解决方案可以让我登录吗root

答案1

做一个:

ssh root@localhost /bin/bash

您不会收到 shell 提示符。但是,如果输入 ls 并按 Enter 键,您将看到输出。然后你可以使用这个 sed 命令来重置你的 root shell:

/usr/bin/sed -i -e 's|^\(root.*:\)[^:]*$|\1/bin/bash|g' /etc/passwd

根据您的发行版,sed 命令可能位于 /bin/sed 下。

显然,这是一个孤注一掷的举措。

答案2

也许最简单的方法是启动到安装介质的救援模式并以/etc/passwd这种方式修复。

答案3

sudo /bin/bash应该做这项工作。您将以bash超级用户权限运行,因此编辑/etc/passwd或运行chsh应该不成问题。

答案4

如果您没有安装 sudo,您可以轻松安装它并且sudo /bin/bash应该可以工作。任何 Linux 发行版都可以使用 sudo。

此外,如果您收到密码提示,则需要使用公钥身份验证,然后启用无密码 sudo。用这个来配置https://spinupwp.com/doc/passwordless-sudo/

在这种情况下,您应该使用 ssh 公钥身份验证 ^^。

相关内容