ubuntu

vsftp在Ubuntu上如何解决权限问题

小樊
55
2025-09-23 01:14:25
栏目: 智能运维

一、安装vsftpd

首先确保系统已更新并安装vsftpd:

sudo apt update
sudo apt install vsftpd

二、配置vsftpd核心参数(解决权限基础)

编辑配置文件/etc/vsftpd.conf(使用nano或vim):

sudo nano /etc/vsftpd.conf

关键设置调整(需取消注释或新增):

三、设置FTP用户及目录权限

1. 创建FTP用户(若未创建)

sudo adduser ftpuser  # 按提示设置密码及信息
sudo usermod -s /sbin/nologin ftpuser  # 可选:禁止shell登录(增强安全,仅允许FTP访问)

2. 调整主目录权限

FTP用户必须对其主目录拥有读+执行权限(目录权限755),文件权限644(若需上传文件,主目录需保留写权限):

sudo chown -R ftpuser:ftpuser /home/ftpuser  # 将主目录所有者设为用户自身
sudo chmod 755 /home/ftpuser                 # 主目录权限设为755(rwxr-xr-x)
sudo find /home/ftpuser -type f -exec chmod 644 {} \;  # 文件权限设为644(rw-r--r--)

注意:若启用了chroot_local_user=YES,主目录的所有者必须为root(避免用户越权修改目录结构),此时需调整:

sudo chown root:root /home/ftpuser
sudo chmod 755 /home/ftpuser
# 若需用户上传文件,需在主目录下创建子目录(如upload),并赋予用户所有权:
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload

四、重启vsftpd服务

配置修改后,重启服务使更改生效:

sudo systemctl restart vsftpd

五、配置防火墙(若启用)

若服务器开启了UFW防火墙,需允许FTP端口(默认21)及被动模式端口范围(如50000-50100):

sudo ufw allow 21/tcp          # FTP控制端口
sudo ufw allow 50000:50100/tcp # 被动模式数据端口(根据实际情况调整)
sudo ufw reload                # 重新加载防火墙规则

六、常见问题排查

  1. 无法登录:检查/var/log/vsftpd.log日志文件,查看具体错误(如用户被拒绝、权限不足);确保local_enable=YESwrite_enable=YES已启用。
  2. 无法上传文件:确认主目录权限正确(若在chroot环境中,需创建可写的子目录);检查allow_writeable_chroot=YES是否设置。
  3. 被动模式连接失败:需在配置文件中添加被动模式端口范围(pasv_min_port=50000pasv_max_port=50100),并开放防火墙对应端口。

0
看了该问题的人还看了