I/O:网络、存储
    存储:
    DAS:Direct Attached Storage
    接口类型:”block”
    SATA,SAS;IDE,SCSI;USB;
    NAS:Network Attached Storage
    接口类型:file
    协议:CIFS(samba), NFS(Network File System)
    RPC:Remote Procedure Call,远程过程调用
    SAN:Storage Area Network
    接口类型:block
    协议:iSCSI(IP-SAN),FC-SAN,FCoE,….
    以上都是传统意义上的存储
    文件服务:ftp,cifs/nfs
    ftp:
    ftp:file transfer protocol ,文件传输协议;
    两类连接:
    命令连接:传输命令
    数据连接:传输数据
    两种模式:
    主动模式:PORT
    Server:20/tcp连接客户端的命令连接使用的端口向后的第一个端口
    被动模式:PASV
    Server:打开一个随机端口,并等待客户端连接
    PAM:Pluggable Authenticate Module
    认证框架:库,高度模块化
    协议:C/S
    Server:
    windows:Serv-U,IIS,Filezilla
    开源:wuftpd,proftpd,pureftpd,vsftpd(Very Secure Daemon),…
    Cilent:
    Windows:ftp,Filezilla,CutFTP,FlashFXP,…
    开源:lftp,ftp,Filezilla,gftp,….
    vsftpd:
    vsftpd is a Very Secure FTP daemon. It was written completely from
    URL:
    SCHEME://username:password@HOST:PORT/PATH/TO/FILE
    路径映射:
    用户家目录:每个用户的URL的/映射到当前用户的家目录;
    vsftp以ftp用户的身份运行进程,默认用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
    ftp,anonymous
    注意:一个用户通过文件共享服务访问文件系统上的文件的生效权限为此二者的交集;
    程序环境:
    主程序:/usr/sbin/vsftpd
    主配置文件:/etc/vsftpd/vsftpd.conf
    数据目录:/var/ftp
    Systemd Unit File: /usr/lib/systemd/system/vsftpd.service

    配置vsftpd :
    用户类别:
    匿名用户:anonymous —> ftp, /varlftp
    系统用户:至少禁止系统用户访问ftp服务,letc/vsftpd/ftpusers,PAM ( /etc/pam.d/vsftpd ) ;
    虚拟用户:非系统用户,用户账号非为可登录操作系统的用户账号(非/etc/passwd ) ;

    用户通过vsftpd服务访问到的默认路径,是用户自己的家目录﹔默认可以自己有权限访问的所有路径切 换;禁锢用户于其家目录中;
    配置文件:letc/vsftpd/vsftpd.conf
    directilve value
    注意: directive之前不能有多余字符;
    匿名用户:
    anonymous_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    系统用户:
    local_enable=YES
    write_enable=YES
    local_umask=022
    辅助配置文件/etc/vsftpd/ftpusers ;
    列在此文件中的用户均禁止使用ftp服务;
    chroot_local_user=YES
    禁锢所有本地用户于其家目录;需要事先去除用户对家目录的写权限;
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    禁锢列表中文件存在的用户于其家目录中;需要事先去除用户对家目录的写权限;
    传输日志∶
    xferlog_enable=YEs
    xferlog_file=/var/log/xferlog
    xferlog_std_format=YES
    守护进程的类型∶
    standalone:独立守护进程;由服务进程自行监听套按字,并接收用户访问请求;
    transient:瞬时守护进程;由受托管方代为监听套按字,服务进程没有访问请求时不启动;当托管方收到访问请求时,才启动服务进程;
    Centos 6:xilnetd独立守护进程,/etc/xinetd.d/ ,
    Centos 7:由systemd代为监听;
    控制可登录vsftpd服务的用户列表∶
    userllst_enable=YES
    启用/etc/vsftpd/user_list文件来控制可登录用户;
    userlist_deny=
    YES:意味着此为黑名单;
    NO:白名单;