在Ubuntu上设置FTP权限需通过安装FTP服务器软件→配置权限参数→设置用户权限→调整防火墙等步骤完成,以下是详细流程:
vsftpd是Ubuntu上常用的FTP服务器软件,以安全性高著称。打开终端,依次执行以下命令安装:
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:允许用户上传、删除、修改文件(核心写入权限)。anonymous_enable=NO:禁用匿名用户登录(如需允许,设为YES并配置anon_root)。chroot_local_user=YES:将用户限制在自己的主目录(防止访问系统其他目录,提升安全性)。allow_writeable_chroot=YES:若启用chroot,需允许用户主目录可写(否则用户无法上传文件)。local_umask=022:设置用户创建文件的默认权限(022表示文件权限为755,目录权限为644;若需更严格,可设为077)。pasv_enable=YES、pasv_min_port=1024、pasv_max_port=1048:启用被动模式并设置端口范围(解决防火墙/NAT环境下的连接问题)。修改完成后,按Ctrl+X→Y→Enter保存并退出。
sudo adduser ftpuser
按提示设置密码及其他信息(如全名、邮箱等)。755允许用户读写自身文件,其他用户仅能读取):sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
若需允许用户上传文件到主目录,需额外添加写权限:sudo chmod u+w /home/ftpuser
修改配置文件后,需重启服务使更改生效:
sudo systemctl restart vsftpd
检查服务状态(确保无报错):
sudo systemctl status vsftpd
若系统启用了ufw防火墙,需开放FTP相关端口:
# 允许FTP控制连接(默认端口21)
sudo ufw allow 21/tcp
# 允许FTP数据连接(被动模式端口范围,根据配置调整)
sudo ufw allow 1024:1048/tcp
# 启用防火墙(若未启用)
sudo ufw enable
使用FTP客户端(如FileZilla)连接服务器:
21(若使用FTPS需改为990)。/etc/vsftpd.conf,添加ssl_enable=YES、rsa_cert_file等参数),避免数据明文传输。/var/log/vsftpd.log日志文件定位原因。chroot_local_user=YES限制用户访问范围,避免系统文件被误操作。按照以上步骤操作,即可在Ubuntu上完成FTP权限设置,满足基本的文件传输需求。