专栏首页我爱编程基于ubuntu搭建FTP文件服务

基于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并设置密码 创建一个用户uftpsudo 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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于ubuntu搭建wordpress个人博客

    林清猫耳
  • 结构化思维学习笔记

    结果 - 原因 提炼重点 思考过程:要素分类 >>> 最终结果 >>> 关键要素

    林清猫耳
  • Day24访问数据库

    使用SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在i...

    林清猫耳
  • netty前传-NIO中缓冲buffer-channel

    针对上面这段代码表示,channel中的数据会根据数组的顺序,先写到buf01中,当buf01写完128个字节后,仍然有数据则会继续写入buf02。这样可以为我...

    用户1418372
  • 聊聊BIO,NIO和AIO (2)磁盘IO磁盘IO的优化AIO反思AIO

    大宽宽
  • synchronized的 偏向锁、轻量级锁、重量级锁的优缺点对比以及其适应场景

    MickyInvQ
  • 聊聊BIO,NIO和AIO (2)

    磁盘IO,简单来说就是读取硬盘一类设备的IO。这类设备包括传统的磁盘、SSD、闪存、CD等。操作系统将其统一抽象为”块设备“。所以磁盘IO又可以叫做”块IO“。...

    天涯泪小武
  • 深度学习算法(第17期)----RNN如何处理变化长度的输入和输出?

    上期我们一起学习了静态RNN和动态RNN的区别, 深度学习算法(第16期)----静态RNN和动态RNN 我们知道之前学过的CNN的输入输出都是固定长度,今天我...

    智能算法
  • 各种经典算法总结

    /* 二分查找   * 算法思想:1、将数组排序(从小到大);2、每次跟中间的数mid比较,如果相等可以直接返回,   * 如果比mid大则继续查找大的...

    阳光岛主
  • 全球首家!腾讯云推出云原生默认合规镜像

    自从等保2.0正式实施 上云的企业都希望有这样一款产品—— 不用再耗费大量时间梳理合规需求 不必再手动配置复杂的操作系统 只要一键点击 云服务器就能实现自...

    腾讯安全

扫码关注云+社区

领取腾讯云代金券