温馨提示×

怎样设置ubuntu ftpserver权限

小樊
41
2026-09-20 19:50:26
栏目: 智能运维

在 Ubuntu 上搭建 FTPS(FTP over SSL/TLS) 服务器时,权限设置通常涉及 系统用户权限、目录权限、vsftpd 配置 三部分。下面以最常见的 vsftpd + SSL 为例说明。


一、安装 FTPS 服务器(vsftpd)

sudo apt update
sudo apt install vsftpd

二、启用 FTPS(SSL/TLS)

生成证书(自签示例):

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt

编辑配置文件:

sudo nano /etc/vsftpd.conf

添加/修改:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

重启服务:

sudo systemctl restart vsftpd

三、用户与目录权限设置(重点)

1️⃣ 创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

2️⃣ 设置 FTP 根目录

sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 750 /home/ftpuser/ftp

⚠️ 注意:

  • 用户 家目录不能写权限给组/其他
  • FTP 登录目录一般设为子目录(如 ftp

四、vsftpd 权限相关核心配置

编辑 /etc/vsftpd.conf

允许本地用户登录

local_enable=YES
write_enable=YES

限制用户在家目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

限制某些用户(可选)

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

五、常见权限场景

✅ 场景 1:用户只能访问自己的目录

chroot_local_user=YES

用户被锁在 /home/ftpuser


✅ 场景 2:多个用户共享目录

sudo groupadd ftpgroup
sudo usermod -aG ftpgroup user1
sudo usermod -aG ftpgroup user2

sudo chgrp ftpgroup /srv/ftp/shared
sudo chmod 770 /srv/ftp/shared

✅ 场景 3:只读用户

write_enable=NO

或目录权限:

chmod 555 /home/ftpuser/ftp

六、防火墙设置

sudo ufw allow 21
sudo ufw allow 40000:50000/tcp

vsftpd 中指定被动端口:

pasv_min_port=40000
pasv_max_port=50000

七、排错建议

查看日志:

sudo tail -f /var/log/vsftpd.log

常见错误:

  • 500 OOPS: chroot → 家目录权限不对
  • 无法上传 → write_enable=NO
  • 连接失败 → SSL 配置错误

如果你能说明:

  • 本地用户 / 虚拟用户
  • 是否要 公网访问
  • 是否要 只读 / 多用户共享

我可以给你一套可直接用的配置模板

0