温馨提示×

如何给debian ftpserver加权限

小樊
47
2026-09-12 17:04:50
栏目: 智能运维

在 Debian 上搭建 FTP 服务器(常见如 vsftpd)并“加权限”,通常包含 用户权限、目录权限、FTP 配置权限 三部分。下面以 vsftpd(最常用) 为例,系统性说明。


一、安装 vsftpd(如未安装)

sudo apt update
sudo apt install vsftpd

二、FTP 用户与系统权限(核心)

1️⃣ 创建 FTP 专用用户

sudo useradd -m ftpuser
sudo passwd ftpuser

建议:

  • 不要用 root 登录 FTP
  • 可禁止 shell 登录(更安全)
sudo usermod -s /usr/sbin/nologin ftpuser

2️⃣ 设置目录权限(Linux 文件系统权限)

假设 FTP 根目录是 /srv/ftp:

sudo mkdir -p /srv/ftp
sudo chown ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp

常见权限说明:

权限 含义
755 所有者可读写执行,其他只读
775 组内可写
700 仅自己可见

三、vsftpd 配置文件权限控制

配置文件位置:

/etc/vsftpd.conf

1️⃣ 基础权限设置

local_enable=YES
write_enable=YES

不开启 write_enable=YES,用户 永远不能上传


2️⃣ 限制用户只能访问自己目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 不配置 allow_writeable_chroot 会导致登录失败


3️⃣ 限制某些用户(白名单)

sudo nano /etc/vsftpd.user_list

写入:

ftpuser

配置:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

四、匿名用户权限(可选)

开启匿名只读

anonymous_enable=YES
anon_root=/srv/ftp/public
sudo mkdir -p /srv/ftp/public
sudo chmod 755 /srv/ftp/public

五、SELinux / 防火墙(常被忽略)

防火墙

sudo ufw allow 21

被动模式(非常重要)

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

六、重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、常见“加权限”场景速查

需求 操作
用户不能上传 write_enable=YES
用户乱跑目录 chroot_local_user=YES
多用户共享目录 建组 + chmod 775
只允许某用户 userlist_deny=NO
禁止某用户 userlist_deny=YES

八、示例:给用户 ftpuser 上传权限

sudo chown ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp

vsftpd.conf:

local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

如果你用的是 proftpd / pure-ftpd,或想要:

  • 虚拟用户
  • TLS 加密 FTP
  • 多用户不同权限

可以告诉我你的具体需求,我可以直接给你完整配置。

0 踩