Anb*_*nbu 8 server ftp vsftpd 14.04
我在我的家庭服务器上做了一个 vsftpd 设置。我遇到了一些身份验证错误,所以我搜索了这个论坛并找到了解决方案。 这个解决方案对我有用
就像在解决方案中一样。默认设置
pam_service_name=vsftpd
Run Code Online (Sandbox Code Playgroud)
不起作用,FTP 服务器不允许我登录。
在我把它改成
pam_service_name=ftp
Run Code Online (Sandbox Code Playgroud)
它工作正常,我可以作为本地用户登录到 FTP 服务器。这背后的原因是什么?为什么默认不起作用?我正在学习 linux 所以你很好的解释可以帮助我很多
小智 7
我遇到了相同的身份验证错误pam_service_name=vsftpd。
遵循在线建议,我无法弄清楚为什么设置pam_service_name=ftp解决了问题,所以我测试了将其设置为pam_service_name=foobar并且它也解决了问题!
免责声明:我也是 linux 新手,但我相信普遍接受的设置建议pam_service_name=ftp是错误的。
pam_service_name=vsftpd选择现有的配置文件/etc/pam.d/vsftpd,但是pam_service_name=ftp会查找/etc/pam.d/ftp不存在的配置文件(至少在我的系统上 - Ubuntu 14.04.2 LTS)。我怀疑这实际上绕过了 PAM 身份验证,而没有抱怨它找不到文件。
如果不使用有效的 PAM 配置,它的安全性可能会降低。
最终解决方案
我最终保留pam_service_name=vsftpd并确保/etc/shells文件中存在用户的 shell 。 http://www.cyberciti.biz/tips/howto-linux-shell-restricting-access.html
看着 /etc/pam.d/vsftd
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
Run Code Online (Sandbox Code Playgroud)
我的问题是它在这auth required pam_shells.so一步失败了。我让我所有的 FTP 用户都使用文件中/usr/sbin/nologin不存在的shell /etc/shells(非 ubuntu 这可能只是/sbin/nologin)。如果您不确定,请尝试注释掉auth required pam_shells.so以查看这是否是pam_service_name=vsftpd.
注意:进一步阅读建议创建虚拟用户更干净,但这需要不同的 vsftpd 和 PAM 配置 - http://www.sigerr.org/linux/setup-vsftpd-custom-multiple-directories-users-accounts-ubuntu-一步一步/。
| 归档时间: |
|
| 查看次数: |
17994 次 |
| 最近记录: |