温馨提示×

如何在Ubuntu上设置FTP用户

小樊
46
2025-10-08 18:10:39
栏目: 智能运维

如何在Ubuntu上设置FTP用户(以vsftpd为例)

1. 安装vsftpd

vsftpd(Very Secure FTP Daemon)是Ubuntu上常用的FTP服务器软件,通过以下命令安装:

sudo apt update sudo apt install vsftpd 

2. 配置vsftpd

安装完成后,编辑vsftpd的主配置文件/etc/vsftpd.conf(使用nanovim均可):

sudo nano /etc/vsftpd.conf 

修改以下关键配置(取消注释或新增):

  • anonymous_enable=NO:禁止匿名用户登录(提升安全性);
  • local_enable=YES:允许本地系统用户登录FTP;
  • write_enable=YES:允许FTP用户上传/修改文件;
  • chroot_local_user=YES:将用户限制在其主目录(防止访问系统其他目录);
  • allow_writeable_chroot=YES:允许chroot目录可写(避免用户无法上传文件到自己的目录);
  • listen=YES:启用独立模式(仅监听IPv4);
  • listen_ipv6=NO:禁用IPv6(如需使用可设为YES)。

保存并退出配置文件(Ctrl+XYEnter)。

3. 创建FTP用户

使用adduser命令创建专用于FTP的系统用户(以ftpuser为例):

sudo adduser ftpuser 

按提示设置密码(建议使用强密码)及其他信息(如姓名、邮箱等,可直接按Enter跳过可选项)。

4. 设置用户主目录权限

确保FTP用户的主目录(默认为/home/ftpuser)权限正确,允许用户访问和写入:

sudo chown ftpuser:ftpuser /home/ftpuser # 将目录所有者设为ftpuser sudo chmod 755 /home/ftpuser # 设置目录权限(所有者可读写执行,其他用户可读执行) 

若需允许用户上传文件到主目录,可将权限放宽至775(需谨慎,避免过度开放):

sudo chmod 775 /home/ftpuser 

5. 重启vsftpd服务

配置生效后,重启vsftpd服务使更改生效:

sudo systemctl restart vsftpd 

如需设置开机自启,可运行:

sudo systemctl enable vsftpd 

6. 配置防火墙(可选但推荐)

若服务器启用了ufw防火墙,需开放FTP默认端口(21)及被动模式端口范围(如1024-1048):

sudo ufw allow 21/tcp # FTP控制连接端口 sudo ufw allow 1024:1048/tcp # FTP被动模式数据端口范围 sudo ufw reload # 重新加载防火墙规则 

7. 测试FTP连接

使用FTP客户端(如FileZilla)或命令行工具测试连接:

  • 命令行测试
    ftp localhost 
    输入FTP用户名(ftpuser)和密码,验证是否能正常登录及上传/下载文件。
  • 图形客户端测试
    打开FileZilla,输入服务器IP、FTP用户名、密码及端口(默认21),点击“快速连接”即可测试。

注意事项

  • 安全性:FTP协议以明文传输数据,建议在生产环境中使用SFTP(SSH File Transfer Protocol,基于SSH加密)替代,只需启用SSH服务(sudo systemctl enable ssh)即可,无需额外安装软件。
  • 被动模式:若需使用被动模式(PASV),需在vsftpd.conf中添加:
    pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 
    并确保防火墙开放了对应的端口范围。
  • 用户隔离:通过chroot_local_user=YES可将用户限制在主目录,如需允许多个用户共享目录,可创建专用目录并设置适当的权限(如chmod 777 /var/ftp/shared)。

0