温馨提示×

linux ftpserver怎样设权限

小樊
38
2026-10-02 06:21:43
栏目: 智能运维

在 Linux 上搭建 FTP 服务器(常见如 vsftpd、proftpd、pure-ftpd)时,“设权限”通常包含 系统用户权限、目录权限、FTP 配置权限、上传/下载限制 等几个方面。下面以 最常用、最安全的 vsftpd 为例说明。


一、FTP 用户与系统权限(基础)

1. 创建专用 FTP 用户

useradd -m ftpuser
passwd ftpuser

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

mkdir /home/ftpuser/ftp
chown ftpuser:ftpuser /home/ftpuser/ftp
chmod 755 /home/ftpuser
chmod 750 /home/ftpuser/ftp

✅ 原则:

  • FTP 用户 不能写根目录
  • 子目录才给写权限(防越权)

二、vsftpd 权限配置(核心)

配置文件通常在:

/etc/vsftpd/vsftpd.conf

1. 禁止匿名访问

anonymous_enable=NO

2. 允许本地用户登录

local_enable=YES

3. 控制上传权限

write_enable=YES        # 允许写

4. 限制用户只能访问自己的目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 不加 allow_writeable_chroot 可能登录失败


三、不同用户不同权限(高级)

方法 1:使用 user_config_dir

user_config_dir=/etc/vsftpd/user_conf

为某用户单独配置:

mkdir -p /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/ftpuser

示例(只读用户):

write_enable=NO

示例(可上传):

write_enable=YES

四、目录级权限示例

只读目录

chmod 555 /home/ftpuser/readonly

可上传目录

chmod 755 /home/ftpuser/upload
chown ftpuser:ftpuser /home/ftpuser/upload

五、虚拟用户(更安全,推荐生产环境)

vsftpd 支持 虚拟用户(PAM + DB):

  • 系统无真实用户
  • 权限通过配置控制

适合:

  • 多用户
  • 高安全
  • Web / 文件分发

(如需要我可以单独写一份完整教程)


六、常见问题排查

1. 登录后 500 OOPS

500 OOPS: vsftpd: refusing to run with writable root inside chroot

解决:

allow_writeable_chroot=YES

2. SELinux 导致无法写

setsebool -P ftpd_full_access on

3. 防火墙

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

七、最小安全权限建议

✅ 生产环境推荐:

  • 不使用匿名
  • chroot 限制
  • 虚拟用户
  • 只读为主,按需开写
  • 配合 SSL/TLS(FTPS)

如果你告诉我:

  • 用的 哪种 FTP 服务(vsftpd / proftpd / pure-ftpd)
  • 是 内网 / 公网
  • 需求是 只读 / 上传 / 多用户隔离

我可以直接给你一套 可复制的配置文件。

0 踩