在我尝试更改我的服务器shell之后,我无法再以root身份login。
首先,我以root身份安装了z-shell(zsh),然后我想将其更改为我的默认shell。 所以我用“chsh”。 我的错是,我输错了路。 通过Putty注销和新的login后,我得到了“访问被拒绝”的消息。
可以预见的是,当shell的path不存在的时候。 所以我login到我的控制面板,并通过filemanager更改了/ etc / passwd文件:我纠正了第一行的错误最后部分 – root用户:
根:X:0:0:根:/根:在/ usr / bin中/ zsh的
即使我将其更改为旧的shell / bin / bash或/ bin / sh,它也不起作用。 我读了密码和阴影是没有活文件,所以我重新启动服务器,但仍然是同样的问题
任何想法,我还能做什么?
操作系统:Debian 5 + Parallels Plesk 11
vipw编辑/ etc / passwd,并使用vipw -s编辑/ etc / shadow。 如果您仍然无法自行修复,请联系您的托pipe服务提供商。 他们会知道如何在10分钟内修复它,或者你应该find一个更好的主机。
我在另一个论坛find了解决scheme。 对于所有有同样问题的人来说,也许这种方法也可以帮助:
我的提供程序更改了root密码,并尝试使用“chsh -s / bin / bash root”,因为密码未被接受,并且发生以下错误:“chsh:PAM authentication failed”。
dave_mystic给出了解决scheme:
真正的问题在/etc/pam.d/chsh中。 在那个文件中,防止用户在分配了一个特殊的shell之后变回到一个普通的shell的那一行出现在授权从根的所有更改的行之前。
不幸的是,下面这行是第一次触发,不允许更改,因为用户shell不在可用shell列表中。 我通过sudo“root”的授权行从未被解雇,因为在第一行开始之后,它从未被检查过。
auth需要pam_shells.so
解决scheme是临时注释掉/etc/pam.d/chsh中的行,将用户shell更改为正确的shell,然后删除该行中的注释。
来源: http : //ubuntuforums.org/showthread.php?t=1702833
所以我评论了所提到的线,之后,我能够改变壳。