zoukankan      html  css  js  c++  java
  • FTP安装及使用

    通过网络传输数据的手段
    1. ssh
    2. http
    3. nfs
    4. rsync
    5. ftp
    6. samba
     
     
    ftp的简介:
    1. ftp是应用层协议,是基于TCP
    2. 使用21端口
     
    FTP的模型
       --------    命令连接              ---------
      | Client | <------------------->  | Server  |
      |        |                        |         |
      |        |   数据连接             |         | 
      |        | <------------------->  |         |
      ---------                         ----------
       
    1)命令连接(控制连接)
      这个连接,始终是打开的。
      客户端,通过这个连接,来发送命令。
     
    2)数据连接
       用来传输数据的。
       数据连接,是按需打开的。
       在传输数据时,才打开数据链接。
     
    了解ftp服务器的“数据连接"的模式
    1)主动模式
       服务器主动连接客户端。
    2)被动模式
       客户端主动连接服务器。
     
    FTP的服务器端程序
    1) vsftpd
        very secure ftp daemon
        非常安全的ftp服务器。
    2) proftpd
    3) pureftpd
        
    客户端ftp程序
    1)命令行界面
       ftp
       lftp
    2) 图形界面
       gftpd
    
       安装: yum install vsftpd
       说明: vsftpd软件,包含了客户端ftp
     
     
    vsftpd的主要程序:
      1) /etc/vsftp 配置文件目录
      2)  /etc/init.d/vsftpd 服务程序的脚本
      3)  /usr/sbin/vsftpd 主程序
     
    启动vsftpd
     # /etc/init.d/vsftpd  start
     或
     # service vsftpd  start
     
    设置为开机启动
     # chkconfig  vsftpd  on
     
    关闭防火墙(先关闭,用于测试)
       在生产环境中,需要打开防火墙,再对指定端口开放。
       # /etc/init.d/iptables stop
     
    安装ftp客户端
       # yum install ftp
       说明:也可以直接安装服务器端的vsftpd
        
    使用ftp客户端
       # ftp  ftp服务器端的IP地址
       提示输入用户名和密码
        
       用户名: 
           ftp或anonymous 表示使用“匿名用户”登录。
           如果登录失败,需要检查服务器的vsftpd的配置文件
          
           还可以输入其他系统用户,或普通用户。 
     
      
    vsftpd的配置文件
       /etc/vsftpd/vsftpd.conf
        
       anonymous_enable=YES   
       表示允许匿名用户登录,默认是不允许匿名用户登录。
     
       local_enable=YES
       表示是否允许系统用户和普通用户以ftp登录
     
       write_enable=YES
       是否允许系统用户和普通用户上传文件
     
       anon_upload_enable=YES
       是否允许匿名用户上传文件
     
       anon_mkdir_write_enable=YES
       是否允许匿名用户创建目录
     
       dirmessage_enable=YES
       当dirmessage_enable为YES时,通过ftp进入某个目录后,
       就会自动的把该目录下的.message文件输出。
       目的在于:自动提示。
     
       xferlog_enable=YES
       是否使用传输日志,如果为YES,则所有数据传输,都会被记录到传输日志文件中。
         
       xferlog_file=....
       用来指定传输日志的文件
     
       chown_uploads=YES
       是否允许改变文件上传后的属主。
       疑问:设置为NO之后,数组被修改为文件上传者。
        
       chown_username=
       表示文件上传后,文件的所有者修改为谁
        
       //待确认!
       chroot_list_enable=YES 是否把chroot_list_file中指定的用户以ftp登录后,被限制在其家目录中访问。
                              而且把他的家目录显示为"/"目录。
       chroot_list_file=
        
     
       userlist_enable=YES
       userlist_deny=NO
       如果userlist_enable=YES, 
       那么,userlist_deny将生效:
           如果userlist_deny=YES, 那么/etc/vsftpd/user_list文件中的用户名,将不能ftp登录
           如果userlist_deny=NO, 那么/etc/vsftpd/user_list文件中的用户名, 可以ftp登录
         
     
    使用ftp时,有两个当前目录:
      1)客户端的当前目录
     
     
          就是使用ftp登录之前的当前目录
          可以使用lcd命令来改变。
      2)服务器端的当前目录
          
     
    使用匿名用户登录ftp服务器
       使用匿名用户登录时(用户名输入为ftp或anonymous)
       使用pwd显示的是 /
       注意,此时的/并不是服务器上的/
       而是 /var/ftp  
     
       1. 下载
          把ftp服务器上的文件下载到本地客户端
          把服务器上的资源下载本地客户端的当前目录       
      
          # get a.txt
            表示把服务器当前目录下的a.txt 下载到客户端的当前目录下。
     
          # get pub/a.txt  
            表示把服务器当前目录下的pub/a.txt下载到客户端的当前目录下的pub目录下!
        
       2. 上传
          默认情况下,是禁止匿名用户使用ftp上传文件。
          匿名用户不能在“根目录”(/var/ftp)下上传文件
     
          匿名用户上传文件,需要:
          1)把vsftpd的配置文件中的anonymous_enable设置为YES
           anonymous_enable=YES
     
          2)在服务器的对应目录中对ftp用户授权
           setfacl  -m  u:ftp:rwx  /var/ftp/upload
           表示匿名用户可以在/var/ftp/upload目录下上传文件了
        
    非匿名用户的使用
      以下用户都是指vsftpd服务器端的用户
     
      1)root用户
         默认情况下,禁止root用户通过ftp登录
         为什么?
     
         因为vsftpd是使用pam来实现用户认证(登录检查)
         而pam的配置文件 /etc/pam.d/vsftpd中:
        ---------------------------------------------------------------------------------------------
         uth       required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=su
       ---------------------------------------------------------------------------------------------
         表示/etc/vsftpd/ftpusers文件中的所有用户不能通过ftp登录
     
         如果把root从该文件中删除,那么就可以使用root用户ftp登录。
         但是,实际生产环境中,不应该允许root用户ftp登录, 因为不安全!
     
     2) 使用普通用户
         使用普通用户的用户名和密码就可以登录。
         登录后的,默认的当前目录,就是该 普通用户的家目录
     
         此时,ftp> pwd
         所显示的路径中的/就是服务器端真正的根目录
     
         直接使用get下载,put上传
     
         1)普通用户登录以后,默认的当前目录是,该用户的家目录
         2)上传和下载时,都要把当前目录切换到合适的位置。
            客户端的当前目录使用lcd切换,服务器端的当前目录使用cd切换
     
     3)使用系统用户
        uid为1-499, 而且不能用来登录系统
     
        用法和普通用户类似。
     
     
    ftp客户端中有很多命令
       ftp > help
       可以显示能够使用的命令
     
       最常用的命令:
       put
       get
       cd
       lcd
       ls
    

      

  • 相关阅读:
    爬虫实践-微博关键词搜索抓取
    爬虫实践-拉勾网测试经理JD抓取【2018.05.15】
    爬虫实践--租房信息查找
    服务器python发送mail无法发出问题
    我的面试流程梳理
    字典树模板(前缀查找、整串查找)
    搬运工程 启动!
    开始收集模板啦!
    WPS表格中不能输入中文 or其他
    ubunt命令
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12063854.html
Copyright © 2011-2022 走看看