ubuntu FTP
第一步:安装VSFTPD
sudo apt-get install vsftpd
安装完成后启动VSFTPD服务:
service vsftpd start
第二步:新建目录/home/uftp作为用户主目录
sudo mkdir /home/uftp
第三步:新建用户uftp,制定用户主目录和所用shell,并设置密码
sudo useradd -d /home/uftp -s /bin/bash uftp
然后将目录/home/uftp的所属者和所属组都改为uftp:
sudo chown uftp:uftp /home/uftp
第四步:新建文件/etc/vsftpd.user_list,用于存放允许访问ftp的用户:
sudo vi /etc/vsftpd.user_list
在其中添加用户uftp,并且保存退出:
第五步:编辑VSFTPD配置文件
VSFTPD配置文件为/etc/vsftpd.conf,执行命令:
sudo vi /etc/vsftpd.conf
做如下修改:
打开注释 write_enable=YES
添加信息 userlist_file=/etc/vsftpd.user_list
添加信息 userlist_enable=YES
添加信息 userlist_deny=NO
修改完成后保存退出。
第六步:测试
现在在Windows下打开cmd窗口,执行命令:
ftp [你的linux机器的ip地址]
Linux下查看ip地址的命令为:
ifconfig
执行完ftp命令后,如果连接成功,会让你输入用户名和密码,输入我们刚刚添加的用户uftp的用户名和密码即可:
命令pwd和lcd分别可以查看远程Linux下和本地Windows下的当前目录:
现在在Linux下的目录/home/uftp下新建文件test_ftp_download.txt,在windows下的家目录(我的为C:\Users\40696)下新建文件test_ftp_upload.txt,分别用来测试下载和上传功能:
下载文件使用命令:get [文件名]
上传文件使用命令:put [文件名]
要点总结:
第一步:安装vsftpd
sudo apt-get install vsftpd
第二步:配置
sudo vi /etc/vsftpd.conf
注销掉,关闭匿名访问
#anonymous_enable=YES
去掉注销,#让本地账号可以访问,比如root,等系统登录账号
local_enable=YES
write_enable=YES
第三步:如果你需要让root可以访问需要执行第三步
sudo vi /etc/ftpusers
把root去掉
第四步:增加一个访问账号
增加一个ftpgroup用户组
sudo groupadd ftpgroup
增加用户ftpuser并设置其目录为/ftp/ftpuser(可以修改,但是必须创建该文件夹)
sudo useradd -g ftpgroup -d /ftp/ftpuser -M ftpuser
如果上面的/ftp/ftpuser没有被创建,即需要创建该文件夹
sudo mkdir /ftp
sudo mkdir /ftp/ftpuser
用户必须拥有权限才可以访问,赋予访问/ftp/ftpuser的权限
sudo chmod 777 /ftp/ftpuser
第五步:设置ftpuser密码
sudo passwd ftpuser
第六步:重启vsftpd
sudo restart vsftpd
查看端口
netstat -tnl
ftp文件权限
local_umask=02
锁定目录:
**1.修改文件 /etc/vsftpd.conf**
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
local_root=/home/uftp
**2.修改文件/etc/vsftpd.chroot_list**
加入uftp
**3.设置目录权限**
chmod a-w /home/uftp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构