Ubuntu 搭建vsftp多用户多目录

1.安装vsftp以及数据库

apt install -y vsftp
apt install -y db-util

2. 增加虚拟用户&数据目录& 开放防火墙端口

useradd -d /data/virftpuser/ -s /bin/bash virftpuser 
# 也可以设置系统账户不可登录系统
#useradd -s /sbin/nologin virftpuser

#创建虚拟用户数据目录(具体位置可自由指定,但是要与用户文件中的local_root匹配)
mkdir -p /data/virftp/DPA_ABC/U001
mkdir -p /data/virftp/DPA_ABC/U002
mkdir -p /data/virftp/DPA_ABC/U003

#目录授权
chown virftpuser:virftpuser/data/virftp/DPA_ABC

#开放防火墙端口
sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
#允许外联ftp通过如下端口访问(需要与vsftpd.conf的pasv_min_port和pasv_max_port保持一致)
sudo firewall-cmd --zone=public --add-port=40000-45000/tcp --permanent
#生效配置
sudo firewall-cmd --reload

3. 配置文件vsftpd.conf

#注:配置文件有可能在/etc/vsftpd目录下

#备份配置文件
sudo cp /etc/vsftpd.conf{,.bak}
#设置配置信息
sudo vim /etc/vsftpd.conf
#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户 
guest_enable=YES
#把虚拟账户映射biftpuser,之后所有的虚拟用户都在这个目录下              
guest_username=virftpuser
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为它的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES
#被动模式,文件传输端口的最大最小范围
pasv_min_port=40000
pasv_max_port=45000
#不设置服务貌似起不来
listen=YES
#设置文件系统编码方式(防止文件名出现中文乱码)
utf8_filesystem=YES

4. 配置用户参数

#用户名和密码隔行录入,多个用户依次类推
vim /etc/vsftpd/vir_user
U001
111111
U002
111111
U003
111111
#创建虚拟用户配置目录
mkdir -p /etc/vsftpd/vsftpd_viruser/
#创建虚拟用户配置文件 每个虚拟用户一个 这里用U001用户作为例子
vim /etc/vsftpd/vsftpd_viruser/U001
#指定虚拟用户目录
local_root=/data/virftp/DPA_ABC/U001
# 上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
#允许上传
anon_upload_enable=YES
#允许下载
download_enable=YES
# 允许创建目录
anon_mkdir_write_enable=YES
# 允许用户执行其他操作(如改名、删除)
anon_other_write_enable=YES

5. 配置pam验证文件

#基本操作 备份
sudo cp /etc/pam.d/vsftpd{,.bak}

#打开目标文件 删除掉全部的auth 和account开头的行
sudo vim /etc/pam.d/vsftpd

# 将下列两行添加到目标文件中
auth       required     pam_userdb.so   db=/etc/vsftpd/vir_user          
account    required     pam_userdb.so   db=/etc/vsftpd/vir_user

6. 生成虚拟数据库

sudo db_load -T -t hash -f /etc/vsftpd/vir_user  /etc/vsftpd/vir_user.db
sudo chmod 700 /etc/vsftpd/vir_user.db

7.完成配置重启服务

systemctl restart vsftpd

8. 新增虚拟用户

# 参考第四步 增加用户配置信息之后 执行下列命令
sudo db_load -T -t hash -f /etc/vsftpd/vir_user  /etc/vsftpd/vir_user.db
sudo systemctl restart vsftpd

访问测试

ftp://C600:1111110@ip

#如果无权限访问,则需要设置文件夹权限
chown virftpuser:virftpuser /data/virftp/DPA_ABC/U001
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值