我错误地将我的用户登录 shell 设置为某个未知目录:([1]。现在,我无法以该用户身份登录。每次我尝试 ssh 时,总是会失败,就像我输入了错误的密码一样。我尝试使用 root 登录,然后su --shell=/bin/tcsh username
我得到了
su: /path/to/shell/i/set/previously: permission denied
要清楚,/path/to/shell/i/set/previously
请指向某个目录,而不是 shell 可执行文件。我尝试将我的登录 shell 改回来,/etc/passwd
但/bin/tcsh
没有成功 :(。总是得到相同的权限被拒绝错误 :(。
现在,我想知道 chsh 做了什么,导致我即使在更改了 上的条目后也无法登录/etc/passwd
。另外,我如何恢复以前的 shell ( /bin/tcsh
)
谢谢。
答案1
以 root 身份登录并使用:
chpass username
您将进入一个包含用户设置的 vi 缓冲区。将 shell 更改为 /bin/tcsh,一切就绪了。
至于为什么这些设置实际上是密码保护./etc/passwd 是从该文件生成的。 阅读精细手册了解更多信息。