基于ubuntu搭建FTP文件服务

1. 安装并启动FTP服务

  • 安装VSFTPD
    使用apt-get安装vsftpd:
    sudo apt-get install vsftpd -y
  • 启动VSFTPD
    安装完成后VSFTPD会自动启动,通过netstat命令可以看到系统已经监听了21端口:
    sudo netstat -nltp | grep 21
    如果没有启动,可以手动开启VSFTPD服务:
    sudo systemctl start vsftpd.service

2. 配置用户访问目录

  • 新建用户目录
    sudo mkdir /home/uftp
    执行完后,就可以在/home/uftp看到新建的文件夹uftp了。
  • 新建用户uftp并设置密码
    创建一个用户uftp
    sudo useradd -d /home/uftp -s /bin/bash uftp
    为用户uftp设置密码:
    sudo passwd uftp
    删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登陆ftp失败:
    sudo rm /etc/pam.d/vsftpd
  • 限制该用户仅能通过FTP访问
    限制用户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,加入刚刚创建的用户。

  • 设置访问权限
    设置主目录访问权限(只读):
    sudo chmod a-w /home/uftp
    新建公共目录,并设置权限(读写):
    sudo mkdir /home/uftp/public && sudo chmod 777 -R /home/uftp/public
    重启 vsftpd 服务:
    sudo systemctl restart vsftpd.service

3. 访问FTP服务

  • 通过Windows资源管理器访问
    Windows用户可以复制下面的链接到资源管理器的地址栏访问:
    ftp://uftp:你的密码@你的主机IP

资料来源:腾讯云开发者实验室

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ftp 文件传输协议 跨平台 上传下载文件 vsftpd 工具:非常安全的文件传输协议;默认的命令端口21号,数据...
    柒夏锦阅读 4,137评论 1 9
  • 图片更清晰,文字在最下面 FTP是TCP/IP的一种应用,使用TCP而不是UDP,所以是可靠的,面向连接的。 FT...
    停下浮躁的心阅读 1,761评论 0 4
  • FTP服务概述 简单FTP构建及访问 VSFTP服务基础 用户禁锢、黑白名单 FTP并发及带宽限制 一、FTP服务...
    紫_轩阅读 7,776评论 3 25
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,677评论 9 468
  • 从前,有一个人名叫“能言”,他非常有口才,号称“百步穿舌”.他与人争辩时,总是滔滔不绝,从来没有一个人能够说的过他...
    海王星1984阅读 112评论 0 0