zoukankan      html  css  js  c++  java
  • Ubuntu系统搭建FTP服务

    导引

    本文使用VSFTPD (very secure FTP daemon)作为搭建FTP服务使用的服务端软件,软件免费开源,小巧且安全性高

    安装并启动 FTP 服务

    安装 VSFTPD: sudo apt-get install vsftpd -y
    启动 VSFTPD 安装完成后 VSFTPD 会自动启动,通过 netstat 命令可以看到系统已经监听了 21 端口:sudo netstat -nltp | grep 21

    5363693-b3e8b7bc98895b2a.png

    如果没有启动,可以手动开启 VSFTPD 服务:
    sudo systemctl start vsftpd.service

    配置用户访问目录

    新建用户主目录
    sudo mkdir /home/uftp
    创建登录欢迎文件(方便用户登录后可以看到欢迎信息,并且确定用户确实登录到了主目录上)
    sudo touch /home/uftp/welcome.txt
    新建用户 uftp 并设置密码
    sudo useradd -d /home/uftp -s /bin/bash uftp
    为用户 uftp 设置密码
    sudo passwd uftp
    删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 ftp 失败:
    sudo rm /etc/pam.d/vsftpd
    限制用户 uftp 只能通过 FTP 访问服务器,而不能直接登录服务器:
    sudo usermod -s /sbin/nologin uftp
    修改 vsftpd 配置
    sudo chmod a+w /etc/vsftpd.conf
    修改 /etc/vsftpd.conf 文件中的配置(直接将如下配置添加到配置文件最下方):

        # 限制用户对主目录以外目录访问
        `chroot_local_user=YES`
    
        # 指定一个 userlist 存放允许访问 ftp 的用户列表
        userlist_deny=NO
        userlist_enable=YES
    
        # 记录允许访问 ftp 用户列表
        userlist_file=/etc/vsftpd.user_list
    
        # 不配置可能导致莫名的530问题
        seccomp_sandbox=NO
    
        # 允许文件上传
        write_enable=YES
    
        # 使用utf8编码
        utf8_filesystem=YES
    

    新建文件 /etc/vsftpd.user_list,用于存放允许访问 ftp 的用户:
    sudo touch /etc/vsftpd.user_list
    sudo chmod a+w /etc/vsftpd.user_list
    修改 /etc/vsftpd.user_list ,加入刚刚创建的用户:

        uftp
    

    设置主目录访问权限(只读):
    sudo chmod a-w /home/uftp
    新建公共目录,并设置权限(读写):
    sudo mkdir /home/uftp/public && sudo chmod 777 -R /home/uftp/public
    重启vsftpd 服务:
    sudo systemctl restart vsftpd.service
    在Windows文件浏览器可以输入 ftp://uftp:你的密码@你的ip地址 访问

    参考资料:
    腾讯开发者实验室_基于 Ubuntu 搭建 FTP 文件服务

  • 相关阅读:
    php if() 括号中为 真详解
    php 写入日志
    trim,rtrim,ltrim详解
    SQlite3 的简单用法。 调用本地时间
    RuntimeError at /host You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your fo
    D3.js 入门系列3
    js中const,var,let区别
    D3.js 入门系列2 — 选择元素和绑定数据
    D3.js 入门系列1
    SVG 教程03
  • 原文地址:https://www.cnblogs.com/ZKin/p/9471052.html
Copyright © 2011-2022 走看看