5. 创建ftp用户,设置为无shell登陆,报curl:(67)Access denied:530的错误分析
在学习鸟哥Linux私房菜基础篇的SELinux时,跟着操作却遇上了点问题,总结分析一下错误。
- 问题复现
- root创建了一个nologin shell登陆的用户,并赋予密码
useradd -s /sbin/nologin ftptest
echo "myftp123" | passwd --stdin ftptest
- 使用这个账号访问ftp报错
curl ftp://ftptest:myftp123@localhost/
报错如下:
curl:(67)Access denied:530
- 报错分析
/etc/shells
文件是当前系统所有可用 shell 的列表文件。应用程序通过读取它可以知道需要使用的 shell 是否有效。每行指定一个可用的 shell,且需要为绝对路径。
这个文件对于ftp程序来说,其中并没有找到/sbin/nologin
的可用shell文件,那么将会拒绝更改。
- 解决方法
添加nologin shell的文件路径于/etc/shells
中。
/sbin/nologin
- 参考文档: