温馨提示×

debian ftpserver怎样设权限

小樊
38
2026-08-31 21:45:00
栏目: 智能运维

在 Debian 上搭建 FTP 服务器(常见用 vsftpd),“设权限”一般涉及 系统用户权限、目录权限、vsftpd 配置限制、SELinux/防火墙(Debian 一般无 SELinux) 等几个方面。下面按最常见场景说明。


一、安装 vsftpd(如已装可跳过)

sudo apt update
sudo apt install vsftpd

二、核心配置文件

/etc/vsftpd.conf

修改后重启:

sudo systemctl restart vsftpd

三、常见权限设置场景

1️⃣ 只允许本地系统用户登录

local_enable=YES
write_enable=YES
  • write_enable=YES 才能上传/删除
  • 用户必须是系统用户(如 useradd ftpuser

目录权限示例:

sudo mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp

2️⃣ 禁止用户离开自己的家目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠ 注意:

  • 如果 chroot 后不能写,要加 allow_writeable_chroot=YES
  • 否则 FTP 登录会失败

3️⃣ 匿名用户(不安全,慎开)

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

匿名目录权限:

sudo chown ftp:ftp /srv/ftp

4️⃣ 只读用户(不能上传)

write_enable=NO

或只对某用户限制(用 user_config_dir):

user_config_dir=/etc/vsftpd/user_conf
echo "write_enable=NO" > /etc/vsftpd/user_conf/readonlyuser

5️⃣ 限制可登录用户

userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
  • userlist_deny=NO → 只有列表里的能登

四、Linux 文件系统权限(很关键)

FTP 权限 = vsftpd 配置 + 系统权限

示例:

chmod 750 /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser/ftp
  • 上级目录不能给 FTP 用户写权限(尤其 chroot 时)

五、防火墙

sudo ufw allow 21

被动模式(推荐):

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
sudo ufw allow 30000:31000/tcp

六、排错常用

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

常见错误:

  • 500 OOPS → chroot 权限问题
  • 530 Login incorrect → 用户被禁或密码错

七、推荐安全做法(生产环境)

  • SFTP(SSH) 代替 FTP
  • 或 FTP + TLS(FTPS)
  • 不使用匿名
  • 限制被动端口
  • 定期审计用户

如果你能告诉我:

  • vsftpd / proftpd / pure-ftpd
  • 匿名 / 系统用户 / 虚拟用户
  • 只读 / 只上传 / 多用户隔离

我可以直接给你一套可复制的配置

0