vsftpd 将shell设置成为nologin后不能登录解决办法|后台服务器|码途山海.智隐长卷 -

程序人生|重庆纽新

找回密码
立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
搜索
发新帖


2308

积分

0

好友

259

主题
楼主
发表于 2021-8-5 13:37:48 | 查看: 803| 回复: 0
在配置一台ftp服务器,但是自己新建立的ftp用户无法登录,客户端提示vsftpd 530 Login incorrect. 话说vsftpd.conf文件配置的没问题,而且用自己的系统帐号登录也没问题。
网上有些地方说配置文件少pam_service_name=vsftpd,但是我的配置文件中有这行了。
到处找各种权限问题,没有发现有啥错误的地方。之后尝试把ftp user的 shell改为sh后,能登录了。以前看的文章都是让把ftp用户的shell设置成nologin 或者 false, 以免ftp用户有shell登录权限,但是为啥到这就不行了呢? 网上找了一下,原来是vsftpd通过pam进行验证shell,而nologin 和 false 是不在/etc/shells中的,所以验证不能通过,自然不能登录了。一个解决办法是,将nologin和false(或者只放用到的那个)添加到/etc/shells中,即 #echo -e "/usr/sbin/nologin n/bin/false" >> /etc/shells 。但是/etc/shells中记录的是valid login shells, 这样做等于是将nologin和false也算进来了,不知道对其他软件或者验证方式会不会造成影响。当然ssh登录是不行的,虽然放到valid login shells中了,但这两个也不是可用的shell。

网上还有另外一种方法,禁止vsftpd通过pam认证,并将check_shell配置为NO,然后添加用户的时候将用户的shell配置为/bin/false或nologin,这样既能够禁止用户ssh登录又能够正常使用ftp。即 /etc/pam.d/vsftpd
#auth  required    pam_shells.so        #注释此行/etc/vsftpd.confcheck_shell=NO #此参数只在不使用pam时才生效,且默认为true。此方法也能解决问题,而且不用改变/etc/shells, 避免不必要的麻烦。但是相对来说vsftpd可能会变得没那么 "vs(Very Secure)"。不知还有没有其他更完善的解决办法。

收藏回复 只看该作者 道具 举报

高级模式
B Color Image Link Quote Code Smilies



QQ|小黑屋| 码途山海.智隐长卷 渝ICP备15002301号-2   渝公网安备50011202504426

GMT+8, 2025-5-17 23:09 , Processed in 0.050823 second(s), 22 queries .

©Copyright 程序人生!

©2012-2015重庆纽新

快速回复 返回顶部 返回列表