温馨提示×

linux ftpserver如何权限

小樊
40
2026-10-11 03:37:41
栏目: 智能运维

在 Linux 上搭建 FTP 服务器(如 vsftpd) 时,“权限”通常涉及 系统用户权限、FTP 目录权限、FTP 配置权限 三个方面。下面以最常见的 vsftpd 为例,系统讲一下。


一、FTP 用户与系统权限

1. FTP 用户类型

  • 系统用户(本地用户)
  • 虚拟用户(推荐,更安全)
  • 匿名用户(anonymous)

2. 创建 FTP 用户(示例)

useradd -m ftpuser
passwd ftpuser

限制用户只能 FTP,不能登录 shell:

usermod -s /sbin/nologin ftpuser

二、目录权限设置(重点)

1. 目录示例

/var/ftp/
└── upload/

2. 设置目录属主

chown -R ftpuser:ftpuser /var/ftp/upload

3. 设置权限

chmod 755 /var/ftp
chmod 775 /var/ftp/upload

常见权限说明:

  • 755:所有者可写,其他只读
  • 775:组可写
  • 777:⚠️ 不推荐(安全隐患)

三、vsftpd 权限相关配置

编辑配置文件:

vim /etc/vsftpd/vsftpd.conf

1. 基本权限控制

anonymous_enable=NO
local_enable=YES
write_enable=YES

2. 上传/下载权限

# 允许上传
write_enable=YES

# 允许删除/重命名
delete_enable=YES

# 允许创建目录
mkdir_upload=YES

3. 限制用户在家目录(重要)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 不加 allow_writeable_chroot 可能导致登录失败


四、虚拟用户权限(高级推荐)

1. 虚拟用户优点

  • 不直接对应系统用户
  • 权限可单独控制

2. 权限映射

guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES

五、SELinux 与防火墙(常见问题)

1. SELinux

查看状态:

getenforce

临时关闭:

setenforce 0

永久允许 FTP:

setsebool -P ftpd_full_access on

2. 防火墙

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

六、常见权限问题排查

问题 原因
530 Login incorrect 用户被禁或 shell 错误
550 Permission denied write_enable=NO
500 OOPS chroot 家目录权限不对
不能上传 目录无写权限

七、最小安全权限示例(推荐)

/var/ftp (root:root, 755)
/var/ftp/upload (ftpuser:ftpuser, 755)

如果你用的是 ProFTPD / Pure-FTPd,或者想要:

  • 不同用户不同目录
  • 只读 / 只写
  • 限速 / 配额

可以告诉我你的 FTP 软件 + 使用场景,我可以给你具体配置。

0 踩