VSFTP 基础

VSFTP

软件信息

服务端软件名: vsftpd

客户端软件名:ftp

服务名:vsftpd

端口:20、21、指定范围随机

配置文件:/etc/vsftpd/vsftpd.conf

登录验证方式

匿名用户验证

​ 用户账号名称: ftp或anonymous
​ 用户账号密码: 无密码
​ 工作目录: /var/ftp
​ 默认权限: 默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)

本地用户验证

​ 用户账号名称:本地用户(/etc/passwd)
​ 用户账号密码: 用户密码(/etc/shadow)
​ 工作目录:登录用户的宿主目录
​ 权限:最大权限(drwx------)

安装

yum install -y vsftpd

匿名用户

注意: 在客户端登录后,默认情况下是可以下载的,但不能上传

  1. 实现可以上传
    a. anon_upload_enable=YES
    b. 在/var/ftp/下创建上传目录
    c. 修改上传目录的权限或所有者,让匿名用户有写入权限

    vim /etc/vsftpd/vsftpd.conf
    取消  anon_upload_enable=YES 注释
    
    mkdir /var/ftp/upload
    
    chomd o+w /var/ftp/upload
    
    systemctl restart vsftpd
  2. 实现创建目录和文件其他操作

    non_mkdir_write_enable=YES 允许创建目录

    anon_other_write_enable=YES 开放其他写入权(删除、覆盖、重命名)

    vim /etc/vsftpd/vsftpd.conf
    取消 non_mkdir_write_enable=YESS 注释
    添加 anon_other_write_enable=YES
  3. 用户进入某个文件夹时,弹出相应的说明

    a. 在对应目录下创建 .message 文件,并写入相应内容
    b. 确认dirmessage_enable=YES是否启用
    c. 尝试却换目录查看效果(同一次登录仅提示一次)

    vim /etc/vsftpd/vsftpd.conf
    确认 dirmessage_enable=YES 是否启用
    vim /var/ftp/upload/.message
    
    wecome ftp server!!!
  4. 实现上传的文件可下载
    默认情况下开放上传权限后,上传的文件是无法被下载的,因为文件的其他人位置没有r权限
    设置anon_umask=022,可以让上传的文件其他人位置拥有r权限, 然后才能被其他人下载

    vim /etc/vsftpd/vsftpd.conf
    添加 anon_umask=022

本地用户

实验需求与流程:

  1. 服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)

    useradd -s /sbin/nologin username
  2. 将所有用户禁锢在自己的家目录下

    注: 默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名

    开启用户家目录限制, 限制所有用户不能随便切换目录

    vim /etc/vsftpd/vsftpd.conf
    取消 chroot_local_user=YES 注释
    
    systemctl restart vsftpd
  3. 将部分用户禁锢在自己的家目录下

    vim /etc/vsftpd/vsftpd.conf
    
    取消 chroot_list_enable=YES 注释
    取消 chroot_list_file=/etc/vsftpd/chroot_list 注释
    
    将用户写进白名单
    
    systemctl restart vsftpd

    开启白名单功能,允许白名单中的用户随意切换目录

    白名单文件所在位置(需自己创建)

  4. 配置文件: /etc/vsftpd/ftpusers

    所敌人

  5. 修改被动模式数据传输使用端口

    pasv_enable=YES

    pasv_min_port=30000

    pasv_max_port=35000

上一篇:4-2 ADO.NET-查询和检索数据5


下一篇:spring jpa 实体互相引用返回restful数据循环引用报错的问题