• CentOS 7 配置ftp服务器


    1:允许匿名用户模式

      [root@www ~]# yum install -y vsftpd

      [root@www ~]# yum install -y ftp

      [root@www ~]# vim /etc/vsftpd/vsftpd.conf(在开始位置添加以下内容)
        anonymous_enable=YES  (允许或者禁止匿名用户访问模式)
        anon_umask=022  (匿名用户上传文件的umask值)
        anon_upload_enable=YES
        anon_mkdir_write_enable=YES
        anon_other_write_enable=YES
      [root@www ~]# ls -ld /var/ftp/pub
      drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub

      [root@www ~]# chown -Rf ftp /var/ftp/pub

      [root@www ~]# getsebool -a | grep ftp
      ftp_home_dir --> off
      ftpd_anon_write --> off
      ftpd_connect_all_unreserved --> off
      ftpd_connect_db --> off
      ftpd_full_access --> off
      ftpd_use_cifs --> off
      ftpd_use_fusefs --> off
      ftpd_use_nfs --> off
      ftpd_use_passive_mode --> off
      httpd_can_connect_ftp --> off
      httpd_enable_ftp_server --> off
      sftpd_anon_write --> off
      sftpd_enable_homedirs --> off
      sftpd_full_access --> off
      sftpd_write_ssh_home --> off
      tftp_anon_write --> off
      tftp_home_dir --> off
      [root@www ~]# setsebool -P ftpd_full_access=on

      [root@www ~]# systemctl start vsftpd

      [root@www ~]# systemctl enable vsftpd

      完成!

    2:允许本地用户登陆(除root用户,如果想允许root用户需删除/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers)

      [root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf:
      anonymous_enable=NO
      local_enable=YES
      write_enable=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

      [root@linuxprobe ~]# getsebool -a | grep ftp
      ftp_home_dir --> off
      ftpd_anon_write --> off
      ftpd_connect_all_unreserved --> off
      ftpd_connect_db --> off
      ftpd_full_access --> off
      ftpd_use_cifs --> off
      ftpd_use_fusefs --> off
      ftpd_use_nfs --> off
      ftpd_use_passive_mode --> off
      httpd_can_connect_ftp --> off
      httpd_enable_ftp_server --> off
      sftpd_anon_write --> off
      sftpd_enable_homedirs --> off
      sftpd_full_access --> off
      sftpd_write_ssh_home --> off
      tftp_anon_write --> off
      tftp_home_dir --> off
      [root@linuxprobe ~]# setsebool -P ftpd_full_access=on

      [root@linuxprobe ~]# systemctl restart vsftpd
      [root@linuxprobe ~]# systemctl enable vsftpd

      完成!

    3:虚拟用户模式

      [root@linuxprobe ~]# cd /etc/vsftpd/
      [root@linuxprobe vsftpd]# vim vuser.list(创建虚拟账户名称密码文件,奇数行名称,偶数行密码)
      zhangsan
      redhat
      lisi
      redhat

      [root@linuxprobe vsftpd]# db_load -T -t hash -f vuser.list vuser.db(用哈希(hash)算法将原始的明文信息文件转换成数据库文件,并且降低数据库文件的权限,并删除源文件)
      [root@linuxprobe vsftpd]# file vuser.db
      vuser.db: Berkeley DB (Hash, version 9, native byte-order)
      [root@linuxprobe vsftpd]# chmod 600 vuser.db
      [root@linuxprobe vsftpd]# rm -f vuser.list

      [root@linuxprobe ~]# useradd -d /var/ftproot -s /sbin/nologin virtual(创建一个虚拟账户,账户名;virtual,账户家目录:var/ftproot,不允许登录服务器,并升高账户家目录权限)
      [root@linuxprobe ~]# ls -ld /var/ftproot/
      drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/
      [root@linuxprobe ~]# chmod -Rf 755 /var/ftproot/

      [root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu(新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu,其中 PAM 文件内的“db=”参数为使用 db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀)
      auth  required  pam_userdb.so db=/etc/vsftpd/vuser
      account  required  pam_userdb.so db=/etc/vsftpd/vuser

      [root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/(新建一个目录,在里面分别创建两个以 zhangsan 和 lisi 命名的文件文件中写入允许的相关权限(使用匿名用户的参数))
      [root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/
      [root@linuxprobe vusers_dir]# touch lisi
      [root@linuxprobe vusers_dir]# vim zhangsan
      anon_upload_enable=YES  (允许匿名用户上传文件)
      anon_mkdir_write_enable=YES  (允许匿名用户创建目录)
      anon_other_write_enable=YES  (允许匿名用户修改目录名称或删除目录)

      (在 vsftpd 服务程序的主配置文件中通过 pam_service_name 参数将 PAM 认证文件的名称修改为 vsftpd.vu,并通过添加 user_config_dir 参数来定义这两个虚拟用户不同权限的配置文件所存放的路径)

      [root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
      anonymous_enable=NO
      local_enable=YES
      guest_enable=YES
      guest_username=virtual
      allow_writeable_chroot=YES
      write_enable=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.vu
      userlist_enable=YES
      tcp_wrappers=YES

      user_config_dir=/etc/vsftpd/vusers_dir

      [root@linuxprobe ~]# getsebool -a | grep ftp
      ftp_home_dir –> off
      ftpd_anon_write –> off
      ftpd_connect_all_unreserved –> off
      ftpd_connect_db –> off
      ftpd_full_access –> off
      ftpd_use_cifs –> off
      ftpd_use_fusefs –> off
      ftpd_use_nfs –> off
      ftpd_use_passive_mode –> off
      httpd_can_connect_ftp –> off
      httpd_enable_ftp_server –> off
      sftpd_anon_write –> off
      sftpd_enable_homedirs –> off
      sftpd_full_access –> off
      sftpd_write_ssh_home –> off
      tftp_anon_write –> off
      tftp_home_dir –> off
      [root@linuxprobe ~]# setsebool -P ftpd_full_access=on  

      [root@linuxprobe ~]# systemctl restart vsftpd
      [root@linuxprobe ~]# systemctl enable vsftpd

       测试,完成!

  • 相关阅读:
    elementUI的table分页多选,记住上一页并勾选中,:row-key的使用方法
    如何在vue中使用svg
    父子组件传值,子组件接收不到值,并且无法动态更改video的视频源进行视频播放
    vue项目中如何使用dataform向后台传值
    'eslint'不是内部或外部命令,也不是可运行的程序
    小程序点击分享open-type="share"触发父元素怎么解决?
    vue项目启动报错Module build failed: Error: No PostCSS Config found in:
    eslint在webstorm中有错误警告
    微信小程序 image图片组件实现宽度固定 高度自适应
    JAVA设计模式学习--代理模式
  • 原文地址:https://www.cnblogs.com/languang9801/p/11095249.html
Copyright © 2020-2023  润新知