![Shell 未在 /etc/shells 中列出,当它列出时](https://linux22.com/image/7249/Shell%20%E6%9C%AA%E5%9C%A8%20%2Fetc%2Fshells%20%E4%B8%AD%E5%88%97%E5%87%BA%EF%BC%8C%E5%BD%93%E5%AE%83%E5%88%97%E5%87%BA%E6%97%B6.png)
我一定在这里遗漏了一些简单的东西,因为我试图将用户的默认 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
.