linux搭建ftp服务器,并用虚拟用户上传下载

配置信息:

CentOS Linux release 7.5.1804 (Core)

vsftpd: version 3.0.2

 

 

第一步:安装vsftpd服务器

yum install vsftpd

 

第二步:修改配置文件/etc/vsftpd/vsftpd.conf 。我的配置文件如下

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_port=4098
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vus
chroot_local_user=YES
allow_writeable_chroot=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
guest_username=ftp
anon_upload_enable=YES

 

第三步:创建虚拟用户

1.编写用户账号密码数据文件(奇数行为用户名,偶数行为密码)

 

2.执行命令生产db文件:

db_load -T -t hash -f vsftpd_login vsftpd_login.db

 

第四步:编写虚拟用户权限文件

在vsftp配置文件中的user_config_dir=/etc/vsftpd/vus目录下创建一个以用户名为文件名的文件。如deploy用户,文件名为/etc/vsftpd/vus/deploy,内容如下

local_root=/data/ftp-deploy
write_enable=YES
download_enable=YES
anon_upload_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
anon_mkdir_write_enable=YES

配置解析:

local_root    用户的目录
anon_world_readable_only     允许匿名登入者下载可阅读的档案
anon_mkdir_write_enable      允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此处设置为NO为了测试。
anon_upload_enable          允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时
anon_other_write_enable    允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名

 

 

第五步:配置pam.d目录下vsftpd控制文件(/etc/pam.d/vsftpd)

注销掉原来的所有,增加下面两行配置(红色路径指向刚刚生成的db文件,不需要带db后缀)

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

修改后如下图:

 

第六步:重启vsftp,完成搭建。

systemctl restart vsftpd