• arch linux 安装 vsftpd 配置虚拟用户


    后面操作会直接基于 yay 操作 自行查找如何安装 yay

    公司经常会用到 ftp 服务 不想用 apache 的 ftp server 所以自己在小机器上撞了 arch linux 用来安装软件 跑程序等。

    1. 安装 vsftpd

    yay vsftpd --noconfirm
    
    • 1

    选择 1 安装 输入密码
    在这里插入图片描述

    2. 安装 pam_pwdfile

    安装 pam_pwdfile用于验证密码文件

    yay pam_pwdfile --noconfirm
    
    • 1

    选择 1 安装
    在这里插入图片描述

    3. 修改配置文件

    配置文件在 /etc/vsftpd.conf 处

    sudo nano /etc/vsftpd.conf
    
    • 1

    修改为以下内容

    # 监听 ipv4
    listen=YES
    # 监听 ipv6
    listen_ipv6=NO
    # 关闭匿名登陆
    anonymous_enable=NO
    # 允许本地登陆 如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
    local_enable=YES
    # 允许写入文件
    write_enable=YES
    # 文件权限掩码设置 当前即为 755
    local_umask=000
    # 不允许匿名上传
    #anon_upload_enable=YES
    # 不允许匿名创建文件夹
    #anon_mkdir_write_enable=YES
    # 目录消息
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    #chown_uploads=YES
    #chown_username=whoever
    xferlog_file=/var/log/xferlog.log
    #xferlog_std_format=YES
    #idle_session_timeout=600
    #data_connection_timeout=120
    #nopriv_user=ftpsecure
    #async_abor_enable=YES
    ascii_upload_enable=YES
    ascii_download_enable=YES
    #deny_email_enable=YES
    #banned_email_file=/etc/vsftpd.banned_emails
    #chroot_local_user=YES
    # 设置不允许离开主目录
    chroot_list_enable=YES
    # 允许登陆的 ftp 用户列表
    chroot_list_file=/etc/vsftpd/chroot_list
    #ls_recurse_enable=YES
    pam_service_name=vsftpd
    ssl_enable=NO
    guest_enable=YES
    guest_username=ftp
    user_config_dir=/etc/vsftpd/vuser_conf
    #pasv_address=172.16.161.244
    #开启PASV模式
    pasv_enable=YES
    #最小端口号
    #pasv_min_port=10027
    #最大端口号
    #pasv_max_port=10037
    pasv_promiscuous=YES
    allow_writeable_chroot=YES
    # ftp 监听端口
    listen_port=2121
    vsftpd_log_file=/var/log/vsftpd.log
    log_ftp_protocol=YES
    hide_ids=YES
    virtual_use_local_privs=YES
    seccomp_sandbox=NO
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60

    4. 配置文件

    创建文件夹 /etc/vsftpd/vuser_conf 对应配置文件内 user_config_dir 属性

    创建 /etc/vsftp/chroot_list 文件,在里面填入自己想要的用户名 我选择 myFtpUser ,如果 chroot_local_user属性没有设置/设置为 NO (默认为NO),则只有该文件内的用户可以登陆

    sudo mkdir -p /etc/vsftpd/vuser_conf
    sudo bash -c 'echo myFtpUser >> /etc/vsftpd/chroot_list'
    
    • 1
    • 2

    创建用户配置
    在 vuser_conf 目录下创建用户名的文件

    sudo nano /etc/vsftpd/vuser_conf/myFtpUser
    
    • 1

    填入内容

    local_root=/home/robot/data/ftphome
    write_enable=YES
    anon_umask=000
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    local_root 是 ftp 的根目录所在文件夹
    同时创建文件夹 并且更改所有者

    sudo mkdir /home/robot/data/ftphome
    sudo chown -R ftp:ftp /home/robot/data/ftphome
    
    • 1
    • 2

    5. 创建密码

    我选择 abcd1234

    openssl passwd -1 -noverify abcd1234
    
    • 1

    得到 $1$vG2IrM5m$mdmBeMXqqnjW7u4exX/190
    用户名:密码作为内容创建 vuser_passwd 文件 文件名任意 后面要用,内容如下 由于有特殊符号 还是用 nano 方便~

    sudo nano /etc/vsftpd/vuser_passwd
    
    • 1
    myFtpUser:$1$vG2IrM5m$mdmBeMXqqnjW7u4exX/190
    
    • 1

    编辑 vsftpd 的 pam 文件

    sudo nano /etc/pam.d/vsftpd
    
    • 1

    将内容删除 或者 都注释(前面加#),然后添加一下内容

    auth required pam_pwdfile.so pwdfile /etc/vsftpd/vuser_passwd
    account required pam_permit.so
    
    • 1
    • 2

    其中就用到了密码文件
    在这里插入图片描述

    6. 赋权

    配置文件目录添加所有可读, ftp 目录的用户目录我直接给了全部权限

    sudo chmod a+r -R /etc/vsftpd
    sudo chmod 777 -R /home/robot
    
    • 1
    • 2

    7. 验证

    我使用 filezilla 连接 没有问题
    注意端口 和配置文件中的对应 是 2121
    请添加图片描述
    在这里插入图片描述
    有时间再更一篇 vsftpd 配置 ftps 的文章

  • 相关阅读:
    windows 11+docker desktop+grafana+influxDB
    关于工业设计,你知道多少?
    设计模式:命令模式
    C++ Builder XE 用sndPlaySound写的简单的语音播报算法
    java基于ssm+vue+elementui的多用户博客管理系统
    Mysq优化---mysql安装与配置(Lunix环境)
    Java - 你真的明白单例模式怎么写了吗?
    C#的ArrayList 类使用说明
    计算机设计大赛 深度学习卫星遥感图像检测与识别 -opencv python 目标检测
    Kubernetes(k8s)部署高可用多主多从的Redis集群
  • 原文地址:https://blog.csdn.net/hexiaodiao/article/details/134062112