温馨提示×

ubuntu ftpserver怎样设权限

小樊
37
2026-09-08 13:24:26
栏目: 智能运维

在 Ubuntu 上搭建 FTP 服务器(常见用 vsftpd),“设权限”通常包含 系统用户/目录权限vsftpd 配置权限 两部分。下面按常见场景说明。


一、安装 vsftpd(如未安装)

sudo apt update
sudo apt install vsftpd

配置文件位置:

/etc/vsftpd.conf

二、基本权限控制(vsftpd.conf)

编辑配置:

sudo nano /etc/vsftpd.conf

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

anonymous_enable=NO

2️⃣ 允许本地用户登录

local_enable=YES

3️⃣ 允许上传(写权限)

write_enable=YES

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

chroot_local_user=YES
allow_writeable_chroot=YES

否则用户可看到 / 整个系统


三、用户目录与系统权限

创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

设置目录权限(示例)

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

⚠️ 注意:

  • chroot 目录 不能是可写的根目录(除非 allow_writeable_chroot=YES
  • 推荐结构:
/home/ftpuser   (755)
 └── ftp        (ftpuser 可写)

四、只允许某些用户使用 FTP

方法 1:用户列表

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

添加允许用户:

echo ftpuser | sudo tee -a /etc/vsftpd.userlist

五、限制用户只能 FTP,不能登录系统(更安全)

sudo usermod -s /usr/sbin/nologin ftpuser

六、重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、常见问题权限错误

现象 原因
500 OOPS: chroot 目录权限不对
无法上传 write_enable=NO
登录失败 用户被 userlist 拒绝
被动模式连不上 未开端口

八、被动模式端口(可选)

pasv_min_port=40000
pasv_max_port=40100

并放行防火墙:

sudo ufw allow 20:21/tcp
sudo ufw allow 40000:40100/tcp

如果你能告诉我:

  • vsftpd / proftpd / pure-ftpd
  • 公网 / 内网
  • 只读 / 只写 / 多用户隔离

我可以给你一份直接可抄的配置

0