vsftpd(Very Secure FTP Daemon)是Ubuntu上常用的FTP服务器软件,首先需要安装:
sudo apt update
sudo apt install vsftpd
编辑vsftpd的主配置文件/etc/vsftpd.conf
,调整以下关键参数以控制用户权限:
sudo nano /etc/vsftpd.conf
local_enable=YES
:允许本地系统用户登录FTP。write_enable=YES
:允许用户上传、删除、修改文件(默认禁止)。anonymous_enable=NO
:禁止匿名用户登录(提升安全性)。chroot_local_user=YES
:将用户限制在自己的主目录(防止访问系统其他目录)。allow_writeable_chroot=YES
:若启用了chroot_local_user
,必须添加此选项,否则用户无法写入自己的主目录(会导致“500 OOPS”错误)。userlist_enable=YES
:启用用户列表文件(/etc/vsftpd.user_list
),仅允许列表中的用户登录。userlist_deny=NO
:设置为用户列表中的用户允许登录(若设为YES
则为拒绝)。listen=YES
:启用独立模式(避免与IPv6冲突)。listen_ipv6=NO
:禁用IPv6支持(如无需IPv6)。
保存并退出编辑器(Ctrl+X
→Y
→Enter
)。使用adduser
命令创建专用FTP用户(避免使用root或其他敏感账户):
sudo adduser ftpuser
按照提示设置密码(建议使用强密码)及其他信息(如姓名、电话等,可直接回车跳过)。
为增强安全性,禁止FTP用户通过SSH登录系统,仅允许FTP访问:
sudo usermod -s /sbin/nologin ftpuser
确保FTP用户的主目录(默认为/home/ftpuser
)权限正确:
sudo chown ftpuser:ftpuser /home/ftpuser # 将目录所有者设为用户自身
sudo chmod 755 /home/ftpuser # 权限:所有者可读/写/执行,组和其他用户可读/执行
775
(组用户也可写):sudo chmod 775 /home/ftpuser
或保持755
,但在用户主目录下创建专门的可写子目录(如/home/ftpuser/uploads
):mkdir /home/ftpuser/uploads
sudo chown ftpuser:ftpuser /home/ftpuser/uploads
sudo chmod 775 /home/ftpuser/uploads
修改配置后,需重启服务使更改生效:
sudo systemctl restart vsftpd
若服务器启用了ufw
防火墙,需开放FTP端口(默认21
):
sudo ufw allow 21/tcp
sudo ufw reload # 重新加载防火墙规则
使用FTP客户端(如FileZilla)或命令行工具测试连接:
ftp your_server_ip
输入创建的FTP用户名(ftpuser
)和密码,验证是否能正常登录、上传/下载文件。
vsftpd
的虚拟用户功能,创建不依赖系统用户的FTP账号,更适合公共FTP场景。ftpgroup
),将多个用户加入组,通过chown
和chmod
设置组权限,实现批量权限管理。chroot_list_enable=YES
和chroot_list_file
,仅限制特定用户到其主目录,其他用户可访问整个系统(需谨慎使用)。注意事项:
umask
设置默认文件权限(如umask 022
,新建文件权限为644
,目录为755
)。