vsftpd部署之问题集
1、当我们限定了用户不能切换到其他目录之后,使用该用户登录FTP时往往会遇到这个错误
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection
##解决办法:
在 /etc/vsftpd/vsftpd.conf 配置文件中添加如下一行
allow_writeable_chroot=YES
2、本地新建的nologin用户无法登录ftp (useradd -s /sbin/nologin ftpuser)
##原因:
在配置一台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
##解决办法:
修改配置文件 /etc/pam.d/vsftpd
#auth required pam_shells.so #注释此行
修改配置文件 /etc/vsftpd/vsftpd.conf
check_shell=NO #此参数只在不使用pam时才生效,且默认为true。
好了,着就是部署vsftpd服务时可能遇到的一些问题了,如有问题可与博主一起交流讨论!