1.安装vsftpd

安装依赖包:

yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl

安装vsftpd:

yum -y install vsftpd

2.配置vsftpd

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

2.1 修改vsftpd.conf配置文件

vim /etc/vsftpd/vsftpd.conf

配置如下:

#不允许匿名访问
anonymous_enable=NO
#本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
local_enable=YES
#可以进行写操作
write_enable=YES
#禁止匿名用户上传
anon_upload_enable=NO
#禁止匿名用户建立目录
anon_mkdir_write_enable=NO
#支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES
#限制用户只能在FTP主目录
#若没有chroot_list文件,自行创建,每一行为一个用户名
chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list #这里面的用户将不能切换目录,只能进入自己的根目录
#开启ip4监听
listen=YES
#关闭ip6监听
listen_ipv6=NO
#PAM服务下Vsftpd的验证配置文件名
pam_service_name=vsftpd
#指定vsftpd服务的运行帐户,不指定时使用ftp
# 设定启用虚拟用户功能
guest_enable=YES
# 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=nobody
# 虚拟用户配置文件存放的路径
user_config_dir=/etc/vsftpd/vusers_list
# 如果启用了限定用户在其主目录下需要添加这个配置
allow_writeable_chroot=YES
# NO时,虚拟用户和匿名用户有相同的权限,默认是NO
virtual_use_local_privs=YES

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
#日志
use_localtime=YES
dual_log_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog

2.2 虚拟用户配置

新建虚拟用户名密码文件

touch vsftpuser.txt

编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“奇数行用户名,偶数行口令”。

vsftpuser.txt文件格式如下:

filei2020     #用户名
filei20201234 #用户密码

生成虚拟用户数据文件:

db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db

需要特别注意的是,以后再要添加虚拟用户的时候,只需要按照“一行用户名,一行口令”的格式将新用户名和口令添加进虚拟用户名单文件。但是光这样做还不够,这样是不会生效的!还要再执行一遍“ db_load -T -t hash -f 虚拟用户名单文件 虚拟用户数据库文件.db ”的命令使其生效才可以!

2.3 设置认证文件PAM

在编辑前做好备份:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup

编辑Vsftpd的PAM验证配置文件,把原来的配置文件全部注释掉(不注释掉虚拟用户会登录不上),添加如下行

#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
auth       required pam_nologin.so

2.4 虚拟用户配置

规划好虚拟用户的主路径:

mkdir /images/ftp

建立测试用户的FTP用户目录:

mkdir /images/ftp/filei2020

更改虚拟用户的主目录的属主为虚拟宿主用户:

chown -R nobody.nobody /images/ftp/

建立虚拟用户配置文件

local_root=/images/ftp/filei2020
#指定虚拟用户的具体主路径
write_enable=YES
#设定允许写操作
data_connection_timeout=120
#设定单次连续传输最大时间
max_clients=10
#设定并发客户端访问个数
max_per_ip=5
#设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
local_max_rate=50000
#设定该用户的最大传输速率,单位b/s

2.5 添加虚拟用户白名单

在/etc/vsftpd/user_list 中添加用户:

filei2020

2.6 重启FTP服务

service vsftpd restart #重启
service vsftpd stop #停止
service vsftpd start #启动
service vsftpd status #状态查看

3.异常处理

3.1 天坑530 之530 Login incorrect.

不要忧伤,不要着急,

一定要去掉所有FTP配置文件中的空格。

空格有\r\n 和\n两种形式,FTP只认\n这种,不认\r\n这种换行方式。

\r\n 格式在notepad++下的示例图:

QQ截图20200714185304.png

\n 格式在notepad++下的示例图:

QQ截图20200714185348.png

看到黑色的CR和LF没,任你玩的再好,只要配置文件有CR这个标识符,不好意思

百度上天下一大抄的人都不会告诉你这个也会产生530登录不了,虽然你参数配置的都没有任何问题。


标题:CentOs7.x 安装与配置FTP (含用户路径权限配置)
作者:TravelEngineers
地址:https://www.mycitymemory.com/articles/2020/07/14/1594724233295.html
版权声明:转载请注明博文地址,尊重作者劳动成果。
作者简介:坐标魔都,一枚爱旅行爱摄影的攻城狮。愿攻城拔寨的路上,你不用996,也不再孤单,加油。