温馨提示×

怎么配置Linux FTP权限

小樊
39
2026-08-01 09:59:45
栏目: 智能运维

在 Linux 上配置 FTP 权限,通常取决于你使用的 FTP 服务器软件。最常见的是 vsftpd,其次是 ProFTPD。下面我以 vsftpd 为主,给你一个从安装到权限配置的完整说明,并补充常见场景。


一、安装 vsftpd(如未安装)

CentOS / Rocky / Alma

yum install -y vsftpd

Ubuntu / Debian

apt update
apt install -y vsftpd

启动并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

二、FTP 权限配置核心思路

FTP 权限 = Linux 文件系统权限 + FTP 服务配置

主要控制点:

  1. 用户是否能登录
  2. 是否能上传 / 下载
  3. 是否限制在家目录(chroot)
  4. 是否允许匿名访问

三、vsftpd 主配置文件

配置文件路径:

/etc/vsftpd/vsftpd.conf   # CentOS
/etc/vsftpd.conf          # Ubuntu

四、常见权限配置示例

✅ 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. 指定 FTP 用户家目录(可选)

usermod -d /data/ftp user1

五、Linux 文件系统权限(非常关键)

FTP 权限最终受 Linux 权限控制

示例:允许用户 ftpuser 上传到 /data/ftp

mkdir -p /data/ftp
useradd -d /data/ftp -s /sbin/nologin ftpuser
passwd ftpuser
chown ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp

如果用户需要上传文件

chmod 777 /data/ftp
# 或更安全
chown ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp

六、只允许部分用户使用 FTP(白名单)

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

/etc/vsftpd/user_list 中加入允许的用户:

ftpuser

七、SELinux 和防火墙(常见问题)

1️⃣ SELinux(CentOS/RHEL)

查看状态:

getenforce

临时关闭(测试用):

setenforce 0

永久关闭(不推荐):

vi /etc/selinux/config
SELINUX=disabled

或允许 FTP:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

2️⃣ 防火墙

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

八、被动模式(推荐,云服务器必开)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行端口:

firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

九、常见错误排查

问题 原因
530 Login incorrect 密码错误 / shell 被禁止
500 OOPS: chroot 家目录权限不对
无法上传 write_enable 未开
连接超时 防火墙 / 被动模式

十、示例:一个安全 FTP 用户配置

useradd -d /data/ftp -s /sbin/nologin ftpuser
passwd ftpuser
chown ftpuser:ftpuser /data/ftp
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

如果你愿意,我可以:

  • ✅ 给你 ProFTPD 配置
  • ✅ 帮你 排查具体报错
  • ✅ 配置 只读 / 只写 / 多用户隔离
  • ✅ 给你 生产环境安全方案

你可以直接贴出:

Linux 版本 + FTP 软件 + 报错信息

0