目录
注:如果不修改vsftpd文件的配置,登录会报530错误:Login failed: 530 Login incorrect.
注:如果不修改selinux配置,登录会报500错误:vsftpd 500 OOPS: chroot,因为test用户的shell是nologin的。
安装vsftpd
yum -y vsftpd lftp ftp
创建用户
本地用户认证方式
#创建用户
useradd -d /ftpfile -s /sbin/nologin test
#-d-->更改用户的家目录为/ftpfile
#-s /sbin/nologin --> 不让用户登录linux系统,只能以ftp方式登录
#设置密码
passwd test
创建用户报错
useradd -d /ftpfile -s /sbin/nologin test 报错
执行:
userdel -rf test
再次创建:
useradd -d /ftpfile -s /sbin/nologin test
创建用户其他操作
添加用户列表:
vim /etc/vsftpd/chroot_list
#添加test用户
test
vim /etc/vsftpd/user_list
#添加test用户
test
配置用户访问权限
vim /etc/vsftpd/vsftpd.conf
#修改以下几项:
#禁用匿名登录,默认是启用
anonymous_enable=NO
#NO表示所有用户都可以跳出家目录,YES表示都不可以跳出,默认为都可以跳出
chroot_local_user=NO
#启用可以或不可以跳出家目录的例外
chroot_list_enable=YES
#当chroot_local_user=NO时,chroot_list里面配置的用户不可以跳出家目录,当chroot_local_user=YES时,chroot_list里面配置的用户可以跳出家目录
chroot_list_file=/etc/vsftpd/chroot_list
#添加以下几项:
#NO表示所有用户均不可以登录ftp,YES表示所有用户均能访问ftp,默认是YES
userlist_deny=NO
#当userlist_deny=NO时,user_list是白名单,当userlist_deny=YES时,user_list是黑名单
userlist_file=/etc/vsftpd/user_list
#用户家目录可写,默认是只读的
allow_writeable_chroot=YES
注:allow_writeable_chroot=YES的作用:
如果设置了用户不能跳出家目录,那么在vsftp2.3版本之后要求根目录默认只能是只读的,此时如果根目录权限不是只读的,就不能登录,登录会报以下错误:Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()。
解决方法有两个,第一种就是在vsftpd.config里面添加allow_writeable_chroot=YES,第二是把根目录设置为只读:chmod a-w /ftpfile。推荐使用第一种方法。
故障错误解决
注:如果不修改vsftpd文件的配置,登录会报530错误:Login failed: 530 Login incorrect.
解决方式有两种,推荐使用第二种:
第一:注释auth required pam_shells.so;
vim /etc/pam.d/vsftpd
#注释以下配置:
auth required pam_shells.so
第二:pam_shells.so改为pam_nologin.so
vim /etc/pam.d/vsftpd
#修改配置,把pam_shells.so改为pam_nologin.so
auth required pam_nologin.so
注:如果不修改selinux配置,登录会报500错误:vsftpd 500 OOPS: chroot,因为test用户的shell是nologin的。
有两种解决方式:第一关闭selinux,第二:修改ftp_full_access为on
第一:关闭selinux
vim /etc/selinux/config
SELINUX=disabled