温馨提示×

vsftp配置Ubuntu用户权限指南

小樊
48
2025-11-10 18:35:10
栏目: 智能运维

VSFTPD配置Ubuntu用户权限指南

1. 安装VSFTPD

首先更新软件包列表并安装vsftpd(Ubuntu默认仓库提供):

sudo apt update
sudo apt install vsftpd

2. 配置VSFTPD基础权限

编辑配置文件/etc/vsftpd.conf(使用nanovim):

sudo nano /etc/vsftpd.conf

关键配置项说明(取消注释或添加):

  • 允许本地用户登录local_enable=YES
  • 允许上传/下载操作write_enable=YES
  • 锁定用户至主目录(安全推荐)chroot_local_user=YES
  • 允许chroot环境写入(若启用chroot,必须添加):allow_writeable_chroot=YES
  • 禁止匿名用户anonymous_enable=NO(可选但推荐)

配置完成后保存并退出(Ctrl+OEnterCtrl+X)。

3. 创建FTP用户并设置权限

3.1 创建系统用户(仅用于FTP)

sudo adduser ftpuser

按照提示设置密码(建议使用强密码),其他信息可跳过或自定义。

3.2 禁止Shell登录(增强安全性)

sudo usermod -s /sbin/nologin ftpuser

此操作防止用户通过SSH登录系统,仅能通过FTP访问。

3.3 设置主目录权限

将用户主目录所有权赋予该用户,并设置合理权限(755允许用户读写执行,其他用户仅读执行):

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

若需细分目录权限(如上传目录),可单独设置:

sudo mkdir /home/ftpuser/uploads
sudo chown ftpuser:ftpuser /home/ftpuser/uploads
sudo chmod 775 /home/ftpuser/uploads  # 允许用户及组写入

4. 可选:通过用户列表精细化控制访问

4.1 启用用户列表功能

/etc/vsftpd.conf中添加/修改以下配置:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO  # 设为NO表示仅允许列表内用户登录

4.2 添加允许的用户

编辑用户列表文件(每行一个用户名):

echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list

若需拒绝特定用户,可将userlist_deny=YES,并在列表中添加需拒绝的用户名。

5. 重启VSFTPD服务

应用所有配置变更:

sudo systemctl restart vsftpd

设置开机自启(可选但推荐):

sudo systemctl enable vsftpd

6. 配置防火墙(若启用)

允许FTP端口(默认21)及被动模式端口范围(如30000-31000):

sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload

若使用ufw,需确保其已启用:sudo ufw enable

7. 测试FTP连接

使用FTP客户端(如FileZilla)或命令行工具验证:

ftp your_server_ip

输入用户名ftpuser和密码,检查是否能正常登录、上传/下载文件。

注意事项

  • 安全性:FTP协议未加密,敏感数据建议使用SFTP(SSH内置,无需额外安装vsftpd)。
  • 被动模式:若需被动模式,需在/etc/vsftpd.conf中配置pasv_enable=YES及端口范围(pasv_min_port=30000pasv_max_port=31000)。
  • 日志排查:若连接失败,查看日志定位问题:sudo tail -f /var/log/vsftpd.log

0