基于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 16.04中安装Linux,Nginx,MySQL,PHP(LNMP堆栈)

LNMP软件堆栈是一组可用于为动态网页和Web应用程序提供服务的软件。它是一个描述带有Nginx Web服务器的Linux操作系统的首字母缩写词。其后端数据存储...

1121
来自专栏LanceToBigData

linux(十四)之linux NFS服务管理

学到这里差不多就结束了linux的基础学习了,其实linux的内容并不难,我们要经常的反复的去操作它,多多和它去联络感情才能很好的掌握这个linux。 加油!今...

34410
来自专栏云计算教程系列

Ubuntu上如何使用GitLab CI搭建持续集成Pipeline

GitLab Community Edition是一个自托管的Git存储库提供程序,具有帮助项目管理和软件开发的附加功能。GitLab提供的最有价值的功能之一是...

2633
来自专栏玩转JavaEE

Redis快照持久化

redis的基础知识我们已经准备的差不多了,接下来两篇文章,我想和大家聊聊redis持久化这个话题。

1310
来自专栏散尽浮华

nginx限制上传大小和超时时间设置说明/php限制上传大小

现象说明: 在服务器上部署了一套后台环境,使用的是nginx反向代理tomcat架构,在后台里上传一个70M的视频文件,上传到一半就失效了! 原因是nginx配...

5747
来自专栏Linux运维学习之路

day4、Linux基础题目

第一题 我想在/data/da 目录下面创建 一个 da.txt 文件  [root@ll ~]# cd /data/oldboyedu -bash: cd: ...

2388
来自专栏张戈的专栏

Linux:10个实用的网络和监控命令

本文列出了 10 个基础的每个 Linux 用户都应该知道的网络和监控命令。网络和监控命令类似于这些: hostname, ping, ifconfig, iw...

3813
来自专栏ASP.NET MVC5 后台权限管理系统

.Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决

说真心话,Eclipse跟我们.net的VS比起来就是屌丝比高富帅,一切都是那么的难用,速度慢得我无法忍受 于是想试试Google钦点的Android Stud...

1917
来自专栏hrscy

记录网站诞生过程-使用hexo+github pages

此博客记录了搭建网站的详细过程,以及建站过程中遇到的一些坑。博客介绍了安装homebrew,nodejs,hexo,域名注册,github设置,DNS解析等过程...

983
来自专栏编程心路

Github学习文档-3

学完这些基础的 Git 命令,你便可以一个人在 GitHub 上玩耍。Git 的命令上和 Linux 的命令操作有很多的相同之处,比如文件操作这一块吧,用 Gi...

1432

扫码关注云+社区