温馨提示×

Debian FTPServer权限怎么设

小樊
43
2026-07-11 03:58:38
栏目: 智能运维

在 Debian 上配置 FTPServer(通常指 vsftpd + SSL/TLS) 时,权限设置主要涉及 用户权限、目录权限、vsftpd 配置、防火墙与 SELinux(Debian 一般不用 SELinux)。下面按常见场景一步步说明。


一、安装 vsftpd(FTPS)

sudo apt update
sudo apt install vsftpd

二、启用 FTPS(SSL/TLS)

1️⃣ 生成证书(自签或正式)

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

2️⃣ 配置 vsftpd.conf

编辑:

sudo nano /etc/vsftpd.conf

基础 FTPS 配置示例:

# 启用 SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

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

# 用户权限
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

# 被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

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

✅ 场景 1:系统用户登录(最常见)

1️⃣ 创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

2️⃣ 设置家目录权限(非常关键)

sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

⚠️ 注意

  • 如果 chroot 开启,家目录不能有写权限(除非 allow_writeable_chroot=YES
  • 推荐做法:
/home/ftpuser
├── upload   (755 或 775)
├── download (755)
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload

✅ 场景 2:只允许上传,不允许删除

# vsftpd.conf
write_enable=YES

然后用 文件系统权限 控制:

sudo chown root:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

上传目录:

sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 755 /home/ftpuser/upload

四、限制用户只能访问 FTP(禁止 SSH)

sudo usermod -s /usr/sbin/nologin ftpuser

或:

sudo usermod -s /bin/false ftpuser

五、防火墙设置

sudo ufw allow 21
sudo ufw allow 30000:31000/tcp

六、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、常见权限错误排查

问题 原因
530 Login incorrect 密码错误 / PAM 限制
500 OOPS: vsftpd: refusing to run with writable root chroot 目录可写
无法上传 write_enable=NO 或目录权限
连接超时 被动端口未放行

八、权限设置速查表

需求 设置
只读 write_enable=NO
可上传 write_enable=YES
锁定家目录 chroot_local_user=YES
多用户隔离 每个用户独立家目录
虚拟用户 需配合 PAM + db

如果你愿意,可以告诉我:

  • ✅ 用 系统用户还是虚拟用户
  • ✅ 是否 必须 chroot
  • ✅ 主要用途(上传 / 下载 / 两者)

我可以给你一份 完全贴合你场景的 vsftpd 配置

0