在 Linux 上搭建 FTP 服务器并配置权限,通常取决于你使用的 FTP 服务软件。最常见的是 vsftpd(Very Secure FTP Daemon)。下面以 vsftpd 为例,系统讲解如何设置权限。
# Debian / Ubuntu
sudo apt update
sudo apt install vsftpd
# CentOS / RHEL
sudo yum install vsftpd
启动并设置开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
配置文件位置:
/etc/vsftpd.conf
修改前先备份:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
anonymous_enable=NO
local_enable=YES
write_enable=YES # 允许写
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不加 allow_writeable_chroot=YES,用户主目录不可写会登录失败。
创建用户列表文件:
sudo vim /etc/vsftpd.user_list
内容示例:
ftpuser1
ftpuser2
配置文件中:
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
FTP 权限 = vsftpd 配置 + Linux 文件权限
sudo useradd -m ftpuser1
sudo passwd ftpuser1
sudo mkdir /home/ftpuser1/upload
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/upload
sudo chmod 755 /home/ftpuser1
用户只能读写 upload 目录。
如果你不想用系统用户,可以用虚拟用户(PAM + db)。
简单流程:
需要的话我可以单独写一份虚拟用户教程。
sudo ufw allow 21
sudo setsebool -P ftp_home_dir on
sudo systemctl restart vsftpd
| 需求 | 配置 |
|---|---|
| 只能下载 | write_enable=NO |
| 只能上传不能删 | 用 Linux 权限控制 |
| 多用户隔离 | chroot_local_user=YES |
| 限制 IP | tcp_wrappers=YES |
如果你能告诉我:
我可以给你一份 精准配置方案。