学习Linux时间不长,首次安装了vsftp,按照网上的各类帖子尝试配置,不过都没打到预期,不是被拒绝链接,就是链接超时,总之就是各类问题啊。固然了,不是别人配置的不对,而是本身不是太懂Linux,选择的配置参数彼此之间不知道哪里起了冲突。linux
因此结合本身的系统把安装配置过程记录下来,方便之后学习总结。shell
一、 安装vsftpdide
# yum install vsftpd 学习
【删除指令 yum remove vsftp*】测试
2.、查看是否已经安装上了spa
# yum list installed | grep vsftpdcode
vsftpd.x86_64 3.0.2-25.el7 @base进程
三、启动vsftp,而且关闭防火墙以方便测试ip
# systemctl start vsftpdci
# systemctl stop firewalld
四、刚安装完vsftp后,/etc/vsftpd/下的文件ftpusers,user_list,vsftpd.conf,vsftpd_conf_migrate.sh。
默认状况下,vsftp是容许匿名链接的,即不输入用户名和密码直接经过ip就能够链接上。
默认的链接目录是/var/ftp/pub,而且只有550的权限。
五、只作简单修改,只为能按预期链接ftp。只允指定用户进行登陆而且只能访问本身的home目录
chroot_local_user=NO (用于指定用户列表文件中的用户是否容许切换到上级目录)
chroot_list_enable=YES (设置是否启用chroot_list_file配置项指定的用户列表文件)
chroot_list_file=/etc/vsftpd/chroot_list (用于指定用户列表文件,须要本身手动建立)
hide_file = .* (不显示以点开头的隐藏文件)
而后使用系统的本地用户进行登陆,链接不成功,提示以下错误:
500 OOPS: chroot
please specify the password
解决方法:关闭SElinux;修改配置文件/etc/vsftpd/vsftpd.conf添加参数:allow_writeable_chroot=YES
实现预期效果。
六、临时关闭Selinux方法
# getenforce
//查看Selinux状态
Enforcing
# setenforce 0
//临时关闭Selinux,当即生效
# getenforce
Permissive
七、新建FTP用户
useradd ftpuser -d /mnt/ftpfile -s /sbin/nologin
passwd ftpuser
chown -R ftpuser:ftpuser /mnt/ftpfile
将ftpuser添加到chroot_list中,链接ftp,提示530 Login incorrect,链接失败。可是建立的普通帐号就能够正常登录。
解决方法:不少提供对系统非登陆访问的守护进程(如FTP)会检查用户的登陆shell是否列在/etc/shells中,若是没有列出,守护进程就会拒绝访问(这正是您所须要的动做)。
打开 /etc/shells后,发现确实没有/sbin/nologin这一行,添加上再次登录,成功。