当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux文件服务器实战详解(匿名用户)

    栏目:Linux/apache问题 时间:2019-10-09 11:04

    一、进程与线程

    二、vsftp服务器

      1.文件传输协议(file transfer protocol,FTP)

      基于该协议ftp客户端和服务端实现文件共享,上传下载文件

      FTP基于TCP协议生成一个虚拟的连接,用于控制ftp连接信息。同时再生成一个TCP连接用于FTP数据传输

        2.ftp传输模式

      3.FTP安装配置

      a.yum方式安装

      b.源码便宜安装

      1)yum install -y vsftpd*

      2)vsftpd安装后的配置文件路径,启动vsftpd服务以及查看进程是否启动 

     rpm -ql | more
      systemctl start vsftpd
      ps -ef | grep vsftpd

      3)Vsftpd默认配置文件

      [xj@www ~]$ sudo cat /etc/vsftpd/vsftpd.conf |grep -v "^#"|grep -v "^$"   去掉注释和空行

      anonymous_enable=YES     开启匿名用户访问
      local_enable=YES     启用本地系统用户访问
      write_enable=YES      本地系统用户写入权限
      local_umask=022     本地用户创建文件以及目录默认权限掩码
      dirmessage_enable=YES     打印目录显示信息,用于用户第一次访问目录时信息提示
      xferlog_enable=YES    启用上传/下载日志记录
      connect_from_port_20=YES  FTP:使用20端口号进行数据传输
      xferlog_std_format=YES      日志文件将根据xferlog的保证格式写入
      listen=YES              vsftp不以独立的服务启动,通过xinetd服务管理,建议改为YES
      listen_ipv6=NO            启用IPv6监听
      pam_service_name=vsftpd      登陆Ftp服务器,依据/etc/pam.dvsftpd中的内容进行认证
      userlist_enable=YES          vsftp.user_list和ftpusers配置文件里用户禁止访问ftp
      tcp_wrappers=YES          设置vsftpd和tcp wrapper结合进行主机访问控制,vsftpd服务器检查/etc/hosts.allow和/etc/hosts/deny中的设置来决定请求链接的主机是否允许访问ftp服务器

       4)FTP默认为主动模式,设置被动模式的方法如下: 

    pasv_enable=YES
      pasv_main_port=6000
      pasv_max_port=60100

       5)匿名用户的配置,访问路径为/var/ftp/pub,默认只有查看权限,如需上传下载删除,需加入以下代码: 

    anon_upload_enable=YES
      anon_mkdir_write_enable=YES
      anon_other_write_enable=YES

         由于默认vsftp匿名用户有anonymous和ftp,所以如需上传删除和修改权限,需要修改/var/ftp/pub有写入权限,(以下任一命令即可)

     chown -R ftp pub/
      chown o+w pub/

    问题区

    1.vsftpd.service: control process exited, code=exit...s=2

     由于centos7中vsftp的配置文件默认将 listen_ipv6=YES 这一行没有注释掉,而我们目前的网络环境还不支持ipv6,

    从而导致出现错误无法启动,

    所以解决方法是将 listen_ipv6=YES更改为:listen_ipv6=NO,或将这一行注释掉

    按上面的方法注释掉 listen_ipv6=YES后,成功启动vsftp

    上传文件时:

    2.553 Could not create file.
      getsebool -a|grep ftp