zoukankan      html  css  js  c++  java
  • 文件共享存储服务-ftp

    ftp|lftp

    1. ftp(File Transfer Protocol)文件传输协议
    2. C/S模式
    3. 默认使用20、21端口:20端口传输数据,21端口传输命令
    4. PORT主动模式
    5. PASV被动模式

    vsftpd

    1. 安装 yum install vsftpd -y
    2. 三种认证模式:匿名用户、本地用户、虚拟用户

    匿名用户

    1. 使用ftp用户作为映射用户,默认家目录是/var/ftp
    2. 相关配置文件参数详解
    参数 功能
    anonymous_enable=[YES| NO] 是否允许匿名用户访问,默认YES
    write_enable=[YES|NO] 是否允许修改文件系统,默认为YES
    anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件,默认NO
    anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建文件夹,默认NO
    anon_other_write_enable=[YES|NO] 是否允许匿名用户具有删除、重命名等权限,默认NO

    本地用户

    1. 使用本地用户,家目录即为默认存储目录,安全性大于匿名用户
    2. 相关配置文件参数详解
    参数 功能
    local_enable=[YES|NO] 是否允许本地用户登陆ftp,默认YES
    local_umask=022 本地用户上传文件的umask值
    write_enable=[YES|NO] 是否允许修改文件系统,默认为YES
    chroot_local_user=[YES|NO] 将用户权限禁锢在家目录,默认为NO
    allow_writeable_chroot=[YES|NO] 是否允许对家目录目录执行写入操作

    虚拟用户

    1. 创建用户数据库文件,仅供ftp服务进行认证使用,安全性最高

    示例

    要求

    1. 以/ftp作为ftp根目录,/ftp/pub作为公共目录只允许查看、下载
    2. /ftp/hr目录只允许hr用户上传、下载、删除等操作,别的用户不可以查看
    3. /ftp/cw目录只允许cw用户上次、下载、删除等操作,别的用户不可以查看
    4. 本地用户登录ftp需要禁锢在家目录

    环境

    系统 IP 软件 备注
    Server_centos7 192.168.11.140 vsftpd 关闭防火墙和selinux
    Client_centos7 192.168.11.141 ftp lftp null

    操作步骤

    Server端操作步骤

    1. 安装
    ]# yum install vsftpd -y
    
    1. 创建/ftp/{pub,hr,cw}目录
    ]# mkdir -p /ftp/{pub,hr,cw}
    
    1. 创建本地用户
    ]# useradd -d /ftp -s /sbin/nologin hr;echo "123123"|passwd --stdin hr
    ]# chown -R hr.hr /ftp/hr;chmod 700 /ftp/hr
    ]# useradd -d /ftp -s /sbin/nologin cw;echo "123123"|passwd --stdin cw
    ]# chown -R cw.cw /ftp/cw;chmod 700 /ftp/cw
    
    1. 修改配置文件
    ]# mv /etc/vsftpd/vsftpd.conf{,.bak}
    ]# grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
    ]# vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO
    
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES
    allow_writeable_chroot=YES
    local_umask=022
    
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    ]# systemctl start vsftpd
    

    Client端操作步骤

    1. 安装ftp/lftp工具
    ]# yum install ftp lftp -y #根据自己喜好选择安装ftp/lftp
    
    1. 验证cw用户是否可以在/ftp/cw目录下上传、下载、删除等操作
    ]# lftp -u cw 192.168.11.140
    lftp cw@192.168.11.140:~> ls
    drwx------    2 0        0               6 May 30 10:27 cw
    drwx------    2 0        0               6 May 30 10:27 hr
    drwxr-xr-x    2 0        0               6 May 30 10:27 pub
    lftp cw@192.168.11.140:/cw> ls
    lftp cw@192.168.11.140:/cw> pwd
    ftp://cw@192.168.11.140/cw
    lftp cw@192.168.11.140:/cw> put /etc/issue
    23 bytes transferred
    lftp cw@192.168.11.140:/cw> ls
    -rw-r--r--    1 1003     1003           23 May 30 10:34 issue
    lftp cw@192.168.11.140:/cw> mkdir test
    mkdir ok, `test' created
    lftp cw@192.168.11.140:/cw> ls
    -rw-r--r--    1 1003     1003           23 May 30 10:34 issue
    drwxr-xr-x    2 1003     1003            6 May 30 10:34 test
    lftp cw@192.168.11.140:/cw> rm -rf test
    rm ok, `test' removed
    lftp cw@192.168.11.140:/cw> ls
    -rw-r--r--    1 1003     1003           23 May 30 10:34 issue
    
    1. 验证cw用户是否可查看/ftp/{pub,hr}目录的内容,并是否可以上传、下载、删除等
    lftp cw@192.168.11.140:/> pwd
    ftp://cw@192.168.11.140/
    lftp cw@192.168.11.140:/> ls
    drwx------    2 0        0               6 May 30 10:27 cw
    drwx------    2 0        0               6 May 30 10:27 hr
    drwxr-xr-x    2 0        0               6 May 30 10:27 pub
    lftp cw@192.168.11.140:/> cd hr
    lftp cw@192.168.11.140:/hr> pwd
    ftp://cw@192.168.11.140/hr
    lftp cw@192.168.11.140:/hr> ls
    ls: Access failed: 550 Failed to change directory.
    lftp cw@192.168.11.140:/hr> 
    lftp cw@192.168.11.140:/> pwd
    ftp://cw@192.168.11.140/
    lftp cw@192.168.11.140:/> ls
    drwx------    2 0        0               6 May 30 10:27 cw
    drwx------    2 0        0               6 May 30 10:27 hr
    drwxr-xr-x    2 0        0               6 May 30 10:27 pub
    lftp cw@192.168.11.140:/> cd hr
    lftp cw@192.168.11.140:/hr> pwd
    ftp://cw@192.168.11.140/hr
    lftp cw@192.168.11.140:/hr> ls
    ls: Access failed: 550 Failed to change directory.
    lftp cw@192.168.11.140:/hr> cd ../pub/
    lftp cw@192.168.11.140:/pub> ls
    lftp cw@192.168.11.140:/pub> put /etc/redhat-release 
    put: Access failed: 553 Could not create file. (redhat-release)
    lftp cw@192.168.11.140:/pub> ls
    -rw-r--r--    1 0        0               0 May 30 10:37 1.txt
    lftp cw@192.168.11.140:/pub> get 1.txt 
    lftp cw@192.168.11.140:/pub> !ls
    1.txt  anaconda-ks.cfg	apache-tomcat-8.5.53.tar.gz  dead.letter  test.file
    
    1. 符合示例要求,结束

    注意点:
    1.注意目录的权限
    2.注意vsftp.conf的配置文件是否禁锢在家目录
    3.vsftpd.conf参数详解,也可以 man vsftpd.conf查看帮助

  • 相关阅读:
    递归算法——求取斐波那契数列(2)
    递归算法——求取斐波那契数列(1)
    《鸟哥的Linux私房菜》学习笔记(1)——文件与目录
    C# FINEUI 多页签(tab)中的笔记
    echarts 在.net 中和数据库交互
    FineUiMVC的tab控件加载URL(内部的_外部的)
    随想
    工作记录
    sql生成唯一标识
    ubuntu 中安装oracle 步骤
  • 原文地址:https://www.cnblogs.com/wanwz/p/12992422.html
Copyright © 2011-2022 走看看