Shell 未在 /etc/shells 中列出,当它列出时

Shell 未在 /etc/shells 中列出,当它列出时

我一定在这里遗漏了一些简单的东西,因为我试图将用户的默认 shell“lshell”设置为有限访问。我尝试使用命令设置 shell chsh -s /usr/bin/lshell user,但出现错误“警告:“/usr/bin/lshell”未在 /etc/shells 中列出”。我已经三重检查了 /etc/shells 的配置文件,如下:

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/usr/bin/lshell

我究竟做错了什么?

编辑:od -c /etc/shells 的输出

0000000   /   b   i   n   /   s   h  \n   /   b   i   n   /   b   a   s
0000020   h  \n   /   s   b   i   n   /   n   o   l   o   g   i   n  \n
0000040   /   b   i   n   /   t   c   s   h  \n   /   b   i   n   /   c
0000060   s   h  \n   /   u   s   r   /   b   i   n   /   l   s   h   e
0000100   l   l
0000102

答案1

/etc/shells错过了文件末尾的换行符。使用关心此问题的编辑器对其进行编辑,例如vi.

相关内容