需求:局域网内搭建FTP服务器,不求安全,只求能用!
安排!
服务端:Ubuntu Server 22.04.1 全命令行无GUI
客户机:Windows 11
步骤:
1. 安装vsftpd
服务端执行代码:sudo apt install vsftpd,安装ftp服务端。
sudo apt install vsftpd
2. 修改配置文件
很多人操作linux文本喜欢使用vim,本人作为重度windows用户用不惯vim,因此全程使用nano编辑,ubuntu自带nano软件包,没有的可以执行sudo apt install nano自行安装。
执行 sudo nano /etc/vsftpd.conf 打开配置文件。
sudo nano /etc/vsftpd.conf
确保以下几项没有被注释掉:
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
修改完成后ctrl+x退出,y保存回车回到命令行。
接下来重启服务让设置生效。
sudo service vsftpd restart
3. 创建FTP用户
sudo useradd -d /home/ftp -M ftpuser
其中:
-d /home/ftp:指定用户家目录,一般是建在/home目录下,目录的名称不一定非要用ftp,文件夹需要自己手动建,如果是建在其他用户的家目录下,比如/home/张三/ftp,客户端登录时可能会因为权限问题直接定位到根目录 / 下。
-M ftpuser:指定用户名,不一定非要叫ftpuser哦~
4. 设置密码
sudo passwd ftpuser
上一步创建的用户名是什么,这一步就把ftpuser改成什么!
5. 创建用户家目录
cd /home
sudo mkdir ftp
本例中ftp用户的家目录是/homt/ftp,所以,首先定位到/home目录下,再创建ftp目录。
创建完ftp目录后用 ll 命令查看目录权限会发现目录的所有者和组都是root(图中ftp2),此时需要更改目录的所有者和组。
sudo chown ftpuser ftp # 指定ftp目录的所有者为ftpuser -- 老外就爱倒装句
sudo chgrp ftpuser ftp # 指定ftp目录的组为ftpuser
OK!至此,服务端所有设置完成,接下来设置客户机!
6. 客户机设置
客户机用的客户端是FileZilla。
打开站点管理,
协议选择SFTP,
输入主机IP,端口默认是22不用管,
登录类型选正常或者账号密码,
输入用户名密码连接即可!
7. 后续操作注意事项
使用以上方法配置的ftp服务,在客户机上传完文件后,文件的所有者是ftpuser,并非当前登录的用户,因此需要使用sudo指令将文件cp或者mv到当前用户可操作的目录后再做进一步操作。
此步操作虽然麻烦,但降低了FTP账户与系统其他常规用户间的耦合度,减少了误操作的风险。