首页 > 其他分享 >ftp多用户多目录配置

ftp多用户多目录配置

时间:2022-10-28 21:36:20浏览次数:49  
标签:ftp 多用户 etc virtual vsftpd user root 目录 localhost

测试环境:centos7

1. 装包与卸载

yum -y install vsftpd
yum -y autoremove vsftpd&&rm -rf /etc/vsftpd /etc/pam.d/vsftpd.rpmsave

2. 用户清单配置

/etc/vsftpd/ftpusers   #黑名单:拒绝用户清单
/etc/vsftpd/user_list  #白名单:允许用户清单
[root@localhost ~]# echo userlist_deny=NO >> /etc/vsftpd/vsftpd.conf
[root@localhost ~]# grep  userlist /etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=NO
[root@localhost vsftpd]# grep deny user_list
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file
[root@localhost ~]# echo -e myftp '\n'ftp{1..5} >> /etc/vsftpd/user_list
[root@localhost ~]# cat > /etc/vsftpd/virtual_user_list.conf << EOF
ftp1
ftp1passwd
ftp2
ftp2passwd
ftp3
ftp3passwd
ftp4
ftp4passwd
ftp5
ftp5passwd
EOF

3. 添加用户

[root@localhost ~]# useradd vsftpd01 -d /home/vsftpd -s /bin/false
[root@localhost ~]# mkdir /home/vsftpd/ftp{1..5}
[root@localhost ~]# chown -R vsftpd01.vsftpd01 /home/vsftpd/
[root@localhost ~]# chmod -R 700 /home/vsftpd/
[root@localhost ~]# chmod 600 /home/vsftpd/
[root@localhost ~]# 

 

4. 修改pam文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/virtual_user_list.conf /etc/vsftpd/virtual_user_list.db
[root@localhost ~]# chmod 600 /etc/vsftpd/virtual_user_list.db 
[root@localhost ~]# cat > /etc/pam.d/vsftpd << EOF
auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list    
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list 
EOF
[root@localhost ~]# 

5. 创建虚拟用户配置文件

配置说明:
//设置FTP账号根目录,指定用户访问
local_root=/home/vsftpd/ftp/
//允许写入权限,包括修改
write_enable=YES
//允许匿名用户浏览,下载文件
anon_world_readable_only=NO
//允许匿名用户上传
anon_upload_enable=YES
//允许匿名用户上传/建立目录
anon_mkdir_write_enable=YES
//允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
anon_other_write_enable=YES

[root@localhost ~]# mkdir /etc/vsftpd/virtual_user_cfg.d/
[root@localhost virtual_user_cfg.d]# cat > /etc/vsftpd/virtual_user_cfg.d/ftp1 << EOF
local_root=/home/vsftpd/ftp1/
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

。
。
。

[root@localhost virtual_user_cfg.d]# cat > /etc/vsftpd/virtual_user_cfg.d/ftp5 << EOF
local_root=/home/vsftpd/ftp5/
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

6. 调整主配文件

anonymous_enable=NO 禁止匿名用户登录
chroot_local_user=YES 禁止用户访问除主目录以外的目录
ascii_upload_enable=YES  设定支持ASCII模式的上传功能
ascii_download_enable=YES 设定支持ASCII模式的下载功能
guest_enable=YES 启动虚拟用户
guest_username=vsftpd01 虚拟用户使用的系统用户名
user_config_dir=/etc/vsftpd/virtual_user_cfg.d/ 虚拟用户使用的配置文件目录
allow_writeable_chroot=YES 最新版的vsftpd为了安全必须用户主目录没有写权限,才能登录,或者使用allow_writeable_chroot=YES

[root@localhost virtual_user_cfg.d]# sed -i 's/^chroot_/#chroot_/' /etc/vsftpd/vsftpd.conf
[root@localhost virtual_user_cfg.d]# sed -i 's/^anon/#anon/g' /etc/vsftpd/vsftpd.conf
[root@localhost virtual_user_cfg.d]# sed -i 's/^ascii_/#ascii_/g' /etc/vsftpd/vsftpd.conf
[root@localhost virtual_user_cfg.d]# cat >> /etc/vsftpd/vsftpd.conf << EOF
anonymous_enable=NO
chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES
guest_enable=YES
guest_username=vsftpd01
user_config_dir=/etc/vsftpd/virtual_user_cfg.d/
allow_writeable_chroot=YES
EOF



如果重启服务后无法访问,试试添加chroot_list

[root@localhost virtual_user_cfg.d]# echo -e '\n'ftp{1..5} >> /etc/vsftpd/chroot_list 

 

7. 启服务

[root@localhost ~]# systemctl restart vsftpd

 

标签:ftp,多用户,etc,virtual,vsftpd,user,root,目录,localhost
From: https://www.cnblogs.com/santia-god/p/16837535.html

相关文章

  • Linux运行当前目录的文件时为什么需要加
    1.在Windows和DOS操作系统中,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,就会到path中指定的路径去找。2.Linux并不会检......
  • 去除.net core 多语言目录
    1.产生原因由Microsoft.VisualStudio.Web.CodeGeneration.Design包导致2.解决方法 如果确实需要某种语言资源文件,可以这样,右键编辑项目文件,在<PropertyGroup>添加如下......
  • FTPHelper
    usingSystem;usingSystem.Drawing;usingSystem.Drawing.Imaging;usingSystem.IO;usingSystem.Net;usingSystem.Text;namespaceZB.QueueSys.Common{//......
  • Java System.getProperty(“java.io.tmpdir“) 获取系统临时目录
    System.getProperty("java.io.tmpdir")是获取操作系统的缓存临时目录在windows7中的目录是:C:\Users\登录用户~1\AppData\Local\Temp\或者也可以直接去你的应用服务器对......
  • 树形查看磁盘目录 lsblk
     lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:00100G0disk├─sda18:10500M0part└─sda2......
  • centos7 ftp服务搭建记录
    1.装包与卸载yum-yinstallvsftpdyum-yautoremovevsftpd&&rm-rf/etc/vsftpd2.设置用户清单策略/etc/vsftpd/ftpusers#黑名单:拒绝用户清单/etc/vsftpd/u......
  • 加了一个目录后, 内容重叠问题
     原因很简单,vue组件内的sass样式写的不规范,新加的文字的样式是.content;然后菜单页的样式也有一个.content;  所以,菜单页的受到这两个.content的影响了;......
  • tuetle绘图目录
    1-turtle坐标2-turtle方向3-turtle基本元素绘制......
  • windows ftp文件夹错误
    遇到问题:  解决办法:1.cmd直接访问ftpip  2.启用tftpclient从文件夹访问ftp://ip  ......
  • 【FTP】小米手机FTP传输
     设置方法打开【文件管理】,右上角按钮选择【远程管理】  点击设置按钮  默认保持唤醒状态设置FTP账户的用户名密码 Windows访问:   然后开启服......