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
资料来源:腾讯云开发者实验室
网友评论