温馨提示×

linux ftpserver怎么设权限

小樊
43
2026-09-05 08:29:01
栏目: 智能运维

在 Linux 上搭建 FTP 服务器并配置权限,通常取决于你使用的 FTP 服务软件。最常见的是 vsftpd(Very Secure FTP Daemon)。下面以 vsftpd 为例,系统讲解如何设置权限。


一、安装 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

三、常见权限设置(重点)

1️⃣ 禁止匿名登录(推荐)

anonymous_enable=NO

2️⃣ 允许本地用户登录

local_enable=YES

3️⃣ 控制是否可上传(写权限)

write_enable=YES      # 允许写

4️⃣ 限制用户只能访问自己目录(安全)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 如果不加 allow_writeable_chroot=YES,用户主目录不可写会登录失败。

5️⃣ 指定用户可访问,其他禁止

创建用户列表文件:

sudo vim /etc/vsftpd.user_list

内容示例:

ftpuser1
ftpuser2

配置文件中:

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

四、Linux 文件系统权限(非常重要)

FTP 权限 = vsftpd 配置 + Linux 文件权限

示例:给用户 ftpuser1 一个目录

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)。

简单流程:

  1. 创建虚拟用户文件
  2. 生成 db 文件
  3. 配置 PAM
  4. 每个虚拟用户可单独配置权限目录

需要的话我可以单独写一份虚拟用户教程。


六、SELinux / 防火墙(常踩坑)

防火墙

sudo ufw allow 21

SELinux(CentOS)

sudo setsebool -P ftp_home_dir on

七、重启生效

sudo systemctl restart vsftpd

八、常见需求速查表

需求 配置
只能下载 write_enable=NO
只能上传不能删 用 Linux 权限控制
多用户隔离 chroot_local_user=YES
限制 IP tcp_wrappers=YES

如果你能告诉我:

  • 用的是 哪个 Linux 发行版
  • 系统用户还是虚拟用户
  • 想实现 什么具体权限(如:只能传文件、不能删)

我可以给你一份 精准配置方案

0