Linux下搭建vsftpd FTP服务需五步:一、安装vsftpd并启用服务;二、配置本地用户登录与家目录隔离;三、创建专用FTP用户并设权限;四、禁用匿名访问并配置用户白名单;五、开放防火墙端口并验证连接。

如果您希望在Linux系统中提供文件共享服务,但尚未部署FTP服务器,则可能是由于缺少FTP服务软件或权限配置不当所致。以下是搭建vsftpd服务器并设置访问权限的详细步骤:
一、安装vsftpd服务
安装vsftpd是搭建FTP服务的第一步,不同发行版使用对应包管理器完成安装,确保基础服务组件就绪。
1、对于CentOS/RHEL/Alibaba Cloud Linux系统,执行:
sudo yum install -y vsftpd
2、对于Ubuntu/Debian系统,执行:
sudo apt update && sudo apt install -y vsftpd
3、安装完成后,验证是否成功:
vsftpd -v
4、启动服务并设为开机自启:
sudo systemctl start vsftpd && sudo systemctl enable vsftpd
二、配置本地用户登录与家目录隔离
启用本地用户认证并限制其仅能访问自身家目录,可防止越权浏览系统文件,提升安全性。
1、编辑主配置文件:
sudo nano /etc/vsftpd/vsftpd.conf
2、确认以下关键行已按要求设置:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
3、取消注释或添加以下行以指定用户根目录:
local_root=/home/%u
4、保存退出后重启服务:
sudo systemctl restart vsftpd
三、创建专用FTP用户并设置权限
避免使用root或高权限系统账户直接登录FTP,应创建无shell访问权限的专用用户,降低安全风险。
1、创建用户并禁用交互式shell:
sudo useradd -d /var/ftp/data -s /sbin/nologin ftpuser
2、为该用户设置密码:
sudo passwd ftpuser
3、创建并授权存储目录:
sudo mkdir -p /var/ftp/data
sudo chown ftpuser:ftpuser /var/ftp/data
sudo chmod 750 /var/ftp/data
4、若需用户登录后强制锁定至该目录,将其加入chroot列表(当chroot_list_enable=YES时):
echo "ftpuser" | sudo tee -a /etc/vsftpd/chroot_list
四、禁用匿名访问并配置用户白名单
匿名登录存在严重安全隐患,必须关闭;同时通过白名单机制精确控制可登录用户范围。
1、在vsftpd.conf中确保:
anonymous_enable=NO
2、启用用户列表控制:
userlist_enable=YES
userlist_deny=NO
3、将允许登录的用户写入白名单文件:
echo "ftpuser" | sudo tee -a /etc/vsftpd/user_list
4、检查黑名单文件/etc/vsftpd/ftpusers,确保ftpuser未出现在其中。
五、开放防火墙端口并验证连接
FTP服务默认监听21端口,被动模式还需额外开放数据端口范围,防火墙未放行将导致客户端连接失败。
1、对于firewalld(CentOS/RHEL):
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
2、对于ufw(Ubuntu/Debian):
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
3、测试本地登录:
ftp localhost
输入用户名ftpuser及密码,成功进入即表示配置生效。


















