vsftp配置详解篇

2023-05-16

在配置安装vsftpd过程中,我遇到了很多坑?查了上百篇博客,才把这些坑一一填满。这里记录是为了方便后来者查阅,我也是个小白。有问题请不要客气,直接喷就是了!

vsftpd 就是very secure FTP  的意思

快速版我会再写一篇博客。这里我们还是来讨论到底怎么才能弄清如何配置ftp?

首先配置ftp服务器中会遇到几个坑?

其实我们只需要清楚几个核心,就可以快速的配置出自己的ftp服务器了

第一个是ftp服务器本身

第二个是用户

第三个是linux主机

第四个是防火墙

第五个是selinux  selinux我这里环境禁用了。我们暂且不谈

那么说回第一个。ftp服务器本身。

如果需要安装ftp服务器。他的主要涉及文件就是

       /etc/vsftpd/vsftpd.conf

       /etc/pam.d/vsftpd

第一个是主要配置文件。我们的本地和匿名只要用到他就够了。

如果我们需要安装ftp服务器。我们需要先检查linux主机是否安装过ftp服务器

因此   我们使用rpm命令查找ftp

rpm -qa  | grep ftp

如果没有任何返回我们即可安装ftp了 使用yum -y install vsftpd 安装

成功安装以后。我们便可以编辑vsftpd.conf主配置文件了

vsftpd 允许三种不同的方式配置 分别是匿名  本地  虚拟账户

匿名的话是最简单的
     什么都不需要动。

      在改动配置文件,请先使用mv  cp 备份文件
     如果你使用vi 打开vsftpd.conf 感觉有点乱,

     使用grep "#"  -v  vsftpd.conf_bak  >vsftpd.conf 

     接下来就直接重启systemctl restart vsftpd 就可以了

不要使用fileZilla连接,filezilla作为小白来讲,filezilla加太多东西了
使用从cmd连接
  其中  ftp ipAdress
  cd changeDirectory  put上传  get  下载
  你在那个地方打开cmd,你的文件就下载在哪里,你的文件上传也是如此, 更直接可以使用绝对路径


  如果打不开,就是防火墙开了,或者selinx开启了

  基本上匿名是什么都不要改动,开箱即用

  如果返回错误需要检查防火墙是否开启。
   
  firewall-cmd --add-service=ftp --permanent //永久开放ftp服务

  你还可以尝试使用systemctl stop firewalld 
  
  关闭防火墙之后查看是否可以登录

   
  而本地用户的配置则只需要更改动配置即可

              anonymous_enable=NO
            local_enable=YES
            local_root=/var/ftp/pub
            write_enable=YES
            local_umask=022
            file_open_mode=0755
            chroot_local_user=YES
            pam_service_name=vsftpd
            userlist_enable=NO
            userlist_deny=NO

            chroot_local_user=YES
            allow_writeable_chroot=YES


            其中需要关注的配置项为local_root,local_root限制本地用户登录后的家目录

            此外pam_service_name,在本地用户中,会使用pam认证,因此需要保证你的pam文件是正确的

            如果出现
              530 login  inCorrect

            那么有可能就是pam文件不正确。
            当然也有可能是家目录的权限不正确

            可以使用tail -f /var/log/secure 查看错误的日志文件

            一般都可以查找出来

            其他的可以自行百度

对于虚拟用户的配置
       首先需要安装db文件,他的目的就是用来加密我们的虚拟账户中的账户和密码

       因此使用  yum install  db*

       之后新建我们虚拟账户文件  
         即:
          一行账户abc
          一行密码123456

          对虚拟账户文件进行加密即vuser.list
       使用db加密
         db_load -T -t hash -f vuser.list vuser.db

       此时完成加密,生成db文件

        对db文件进行保护,因此
         chmod 600 vuser.db
        
       这个时候我们新建ftp的系统账户,而并不是虚拟账户

       useradd -d /var/ftp/pub -s /sbin/nologin  tom

      -d 指定家目录 -s  限制此账户登录系统,仅用作ftp虚拟账户映射 

      此时对该家目录需要让其他用户可以访问
      chmod -RF  755 /var/ftp/pub

      使用passwd user  更改密码

      最后,虚拟账户也使用pam认证
      因此我们需要对pam进行修改
      备份之后,删除原内容后添加上以下两句
        auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser //此句用于检查用户密码,数据库文件不要写后缀.db

        account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser //此句用于检查用户是否在有效期内,数据库支持虚拟用户的PAM认证文件。

      这之后更改主配置文件即vsftpd.conf

            anonymous_enable=NO
            local_enable=YES
            write_enable=YES
            guest_enable=YES
            guest_username=tom
            pam_service_name=vsftpd
            user_config_dir=/etc/vsftpd/vuser_list
            pasv_enable=YES

    
            其中我么们需要关注的就是guest_username=tom 
            这个指定的账户表示的就是我们登录虚拟账户以后使用就是tom的家目录
            pam_service_name 表示的是pam认证的文件
            他位于/etc/pam.d/vsfptd下

            user_config_dir 这个就是我们虚拟用户的配置文件所在的文件夹
            这是一个存放我们虚拟用户配置文件的文件夹
         
         因此,我们如果要配置我们虚拟账户的权限还需要在这个文件夹中生成和虚拟账户同名的配置文件

         配置文件为:abc   文件位置为 /etc/vsftpd/vuser_list/abc

         其中配置项为:

                local_root=/var/ftp/pub //虚拟账号的家目录

                anonymous_enable=NO

                local_umask=022

                anon_upload_enable=YES //上传权限

                anon_mkdir_write_enable //创建文件和目录的权限

                anon_other_write_enable //删除文件和目录的权限

                anon_world_readable_only=YES //当文件的“其他人”有读权限的时候可以下载

                download_enable=YES //下载权限


                之后重启vsftpd,基本就可以实现了。
      参考文档:
       https://www.sohu.com/a/280848734_100155594
       https://blog.51cto.com/yuanbin/108262
       https://www.cnblogs.com/asker009/p/10254477.html
       https://www.cnblogs.com/songchunmin/p/7789735.html
       https://www.cnblogs.com/rongkang/p/10005775.html


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vsftp配置详解篇 的相关文章

  • 九九乘法表(java)

    九九乘法表 public class Cfb public static void main String args TODO Auto generated method stub printCfb public static void p
  • Java数组应用

    1 输出三位的水仙花数 2 输出n以内的数哪些数是质数 3 打印由 组成的等腰三角形 4 打印九九乘法表 5 用1元纸币兑换1分 xff0c 2分 xff0c 5分的硬币 xff0c 要求兑换50枚 问问尅有多少种组合 xff0c 每种组合
  • java的冒泡排序

    java的冒泡排序 TODO Auto generated method stub int a 61 11 10 5 7 9 3 5 2 6 bubbleSort a 调用排序方法 show a 调用现实方法 public static v
  • Java数组选择排序

    Java数组选择排序 public static void main String args TODO Auto generated method stub int a 61 4 3 5 8 3 9 13 7 int b 61 select
  • java在有序数组内添加一个数,并按顺序排列

    java在有序数组内添加一个数 xff0c 并按顺序排列 public static void main String args TODO Auto generated method stub int a 61 1 3 5 7 9 11 1
  • 求二维数组最大值

    JaVa求二维数组最大值 public static void main String args TODO Auto generated method stub int a 61 1 2 3 4 5 6 7 8 9 int re 61 ma
  • 打印杨辉三角形JAVA数组方法

    打印杨辉三角形 public static void main String args TODO Auto generated method stub putYhTriangle 10 打印杨辉三角形 public static void
  • 九宫格随机数Java数组

    无法判断是否重复了 public class Deno7 public static void main String args 声明一个3行3列的数组 int array 61 new int 3 3 int b for int i 61

随机推荐

  • 开发一个表示坐标点的类Point,该类对外提供以下公有实例方法:

    开发一个表示坐标点的类Point xff0c 该类对外提供以下公有实例方法 xff1a a 设置横纵坐标 b 偏移横坐标 c 偏移纵坐标 d 偏移横纵坐标 e 求本点到另外一个点的距离 勾股定理 f 求本点到另外一个点与x轴夹角的余弦值 g
  • 开发一个人类,具有实例属性身高,体重,星座,有如下实例方法:

    import java util Random 开发一个人类 xff0c 具有实例属性身高 xff0c 体重 xff0c 星座 xff0c 有如下实例方法 xff1a a 初始化方法 xff1a 内部随机产生身高 xff08 140 200
  • 【百度智能云】基于http3的xcdn 开放直播方案设计与实践

    大神 柯老师 现有的融合CDN 0 需要集成sdk sdk 是集成在端侧 缺点 sdk 对端侧有影响 多云模式下 sdk不互通 XCDN 设计目标 保持现有cdn的优势 承载各种业务 直播点播 让各家的cdn互通 cdn 厂家屏蔽了差异性
  • 开发一个表示图书的Book类

    Book类型 public class Book 1 开发一个表示图书的Book类 该类具有私有的实例属性 xff1a 编号 名称 作者 价格 出版社 出版日期等信息 并且该类为上述属性提供公有的get和set方法 xff0c 同时该类还具
  • ATM管理者操作界面

    ATM界面 import java util Scanner public class AccountView private AccountManger am 61 new AccountManger public void regist
  • Java类的操作

    银行账户类 package com github Mrtiang public class Account 创建账户属性 private int id private double balance private double annual
  • javase类的简单应用圆与圆柱类

    圆类 package com github MrtianSuper public class Circle private double radius 61 1 设置圆的半径 无参数构造方法 public Circle this radiu
  • Java银行账户可透支类

    账户类 java package com github Mrtiang public class Account 创建账户属性 private int id private double balance private double ann
  • java继承的概念与相关应用

    继承 1 继承概述 需求说明 xff1a 设计两个类 xff1a Dog和Penguin 问题 xff1a 其中属性和方法有大量的重复 xff0c 可以优化 xff0c 使用继承 继承使用的关键字 xff1a extends xff1a 扩
  • Java类与继承

    继承二 1 static关键字 使用场景 xff1a 当某些场景下不需要创建多个 内容 xff0c 每个类的实例对象共享一个 内容 时就可以使用static关键字来修饰 含义 xff1a static表示静态内容 xff0c 使用stati
  • 继承,static关键字,abstract,单例模式

    1 为什么要有类的继承性 类的继承性可以减少代码冗余度 xff0c 提高代码复用性 xff0c 提高代码操作效率 2 继承的格式 xff08 语法 xff09 子类 extends 父类 3 子类继承父类后有哪些不同 子类范围大于父类 xf
  • KVM详解(一)——KVM基础知识

    今天继续给大家介绍Linux运维相关知识 xff0c 本文主要内容是KVM的基础知识 一 虚拟化简介 xff08 一 xff09 虚拟化概述 在计算机中 xff0c 虚拟化技术是一种资源管理技术 xff0c 可以将计算机的各硬件资源 xff
  • Linux桌面图形化安装详解

    今天继续给大家介绍Linux相关知识 xff0c 本文主要内容是Linux xff08 CentOS7 xff09 图形化GUI页面安装详解 一 Linux GUI图形化页面简介 尽管在运维工作中 xff0c 我们很少在Linux上安装图形
  • 【MediaSoup c#】 worker的创建

    js rust 不太熟 c 似乎还好懂一些 学习media soup 的各个组件及大体使用方式 学习其设计理念 MediasoupServer 管理worker列表 worker的表达是通过 IWorker 抽象类 拥有一个observer
  • KVM详解(三)——KVM创建虚拟机

    今天继续给大家介绍Linux运维相关知识 xff0c 本文主要内容是在KVM上创建虚拟机 一 安装准备 在前文KVM详解 xff08 二 xff09 KVM安装部署中 xff0c 我们安装了KVM 今天 xff0c 我们就来创建一个KVM的
  • KVM详解(九)——CentOS6虚拟机关机失败问题解决

    今天继续给大家介绍Linux运维相关知识 xff0c 本文主要内容是CentOS6虚拟机关机失败问题解决 一 问题描述 当我们使用KVM安装CentOS6系统后 xff0c 会发现一个问题 xff0c 即无法通过virsh shutdown
  • Python循环结构详解

    今天继续给大家介绍Python相关知识 xff0c 本文主要内容是Python循环结构 循环是一种编程语言的重要结构 xff0c 在Python中 xff0c 存在着两种循环 xff0c 一种是遍历循环 xff0c 一种是while循环 一
  • Ubuntu配置sudo命令不需要输入密码

    执行以下命令 xff1a span class token function sudo span visudo span class token comment sudo visudo默认使用的编辑器是nano xff0c 使用上下键移动
  • 智慧社区信息管理系统的设计与实现(论文打包下载)

    摘 要 近几年来 xff0c 随着网上支付方式的普及 xff0c 越来越多的人选择使用网上支付 xff0c 但由于网上支付的方式还未普及到生活的各方面 xff0c 因此本系统的完成将为物业小区提供合理的线上管理模式 xff0c 代替传统的线
  • vsftp配置详解篇

    在配置安装vsftpd过程中 xff0c 我遇到了很多坑 xff1f 查了上百篇博客 xff0c 才把这些坑一一填满 这里记录是为了方便后来者查阅 xff0c 我也是个小白 有问题请不要客气 xff0c 直接喷就是了 xff01 vsftp