Ubuntu下vsftpd权限配置指南
首先更新系统软件包并安装vsftpd:
sudo apt update
sudo apt install vsftpd
编辑vsftpd主配置文件/etc/vsftpd.conf(使用nano或vim):
sudo nano /etc/vsftpd.conf
关键配置项说明:
local_enable=YES:允许本地系统用户登录FTP。write_enable=YES:允许用户上传、删除、修改文件(核心写入权限)。chroot_local_user=YES:将用户限制在自己的主目录(增强安全性,防止访问系统其他目录)。allow_writeable_chroot=YES:当chroot_local_user=YES时,必须开启此选项,否则用户无法在chroot环境中写入文件(如上传文件会报错)。local_umask=022:设置文件创建掩码,新文件的默认权限为644(所有者可读写,其他用户只读),目录为755(所有者可读写执行,其他用户可读执行)。userlist_enable=YES + userlist_file=/etc/vsftpd.user_list + userlist_deny=NO:仅允许/etc/vsftpd.user_list中列出的用户登录(白名单机制)。sudo adduser ftpuser
按提示设置密码(建议使用强密码),其他信息可跳过。
为提升安全性,禁止用户通过SSH登录系统:
sudo usermod -s /sbin/nologin ftpuser
确保用户主目录归用户所有,且权限正确:
sudo chown -R ftpuser:ftpuser /home/ftpuser # 归属权设为用户及用户组
sudo chmod -R 755 /home/ftpuser # 目录权限设为755(所有者可读写执行,其他用户可读执行)
若需更严格的文件权限(如防止其他用户读取文件),可将目录权限设为750:
sudo chmod -R 750 /home/ftpuser
若系统启用了UFW防火墙,需开放FTP端口(默认21)及被动模式端口范围(如30000-31000):
sudo ufw allow 21/tcp # FTP控制端口
sudo ufw allow 20/tcp # FTP数据端口(主动模式)
sudo ufw allow 30000:31000/tcp # 被动模式端口范围(根据实际情况调整)
sudo ufw reload # 重新加载防火墙规则
sudo systemctl restart vsftpd
若需验证配置文件语法是否正确,可使用:
sudo vsftpd /etc/vsftpd.conf
无报错则表示配置正确。
使用FTP客户端(如FileZilla)或命令行工具连接服务器:
ftp your_server_ip
输入用户名(如ftpuser)和密码,验证是否能正常登录、上传/下载文件。
/etc/vsftpd.conf中添加:pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并确保防火墙开放了对应的端口范围。xferlog_enable=YES),日志文件默认位于/var/log/vsftpd.log。ssl_enable=YES),配置证书以保护数据传输安全。