我想我面临的问题并不常见。我写
chsh -s /bin/false root
现在我无法登录root
。我有什么办法可以登录吗root
?当我尝试命令时
chsh -s /bin/true root
我得到的答案是我可能不会更改 shell root
,当然,当我尝试编辑/etc/passwd
with时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 公钥身份验证 ^^。