Ubuntu FTP服务器用户设置指南(基于vsftpd)
vsftpd(Very Secure FTP Daemon)是Ubuntu上最流行的FTP服务器软件,以下是设置FTP用户的详细步骤:
首先更新系统软件包列表并安装vsftpd:
sudo apt update
sudo apt install vsftpd
编辑vsftpd的主配置文件/etc/vsftpd.conf(使用nano或vim):
sudo nano /etc/vsftpd.conf
关键配置项说明(取消注释或添加):
anonymous_enable=NO:禁止匿名用户登录,提升安全性。local_enable=YES:允许系统本地用户登录FTP。write_enable=YES:允许用户上传、删除文件(需配合目录权限)。chroot_local_user=YES:将用户限制在自己的主目录(防止访问系统其他目录)。allow_writeable_chroot=YES:若启用chroot_local_user,必须添加此项,否则用户无法写入自己的主目录。userlist_enable=YES:启用用户列表控制(可选,用于指定允许/拒绝的用户)。userlist_file=/etc/vsftpd.user_list:用户列表文件路径(默认不存在,需手动创建)。userlist_deny=NO:若为NO,则user_list中的用户允许登录;若为YES,则拒绝。# 创建用户(按提示设置密码及其他信息,如全名、邮箱)
sudo adduser ftpuser
# 设置用户密码(若创建时未设置)
sudo passwd ftpuser
若需禁止用户通过SSH登录,可将用户的Shell设为/sbin/nologin:
sudo useradd -m -s /sbin/nologin ftpuser # -m创建家目录,-s指定Shell
sudo passwd ftpuser
FTP用户的主目录需归属该用户,且权限正确(确保vsftpd可访问):
# 设置家目录归属
sudo chown ftpuser:ftpuser /home/ftpuser
# 设置目录权限(755允许用户读写执行,其他用户仅读执行)
sudo chmod 755 /home/ftpuser
# 若需允许用户上传文件,需将家目录设为可写(775)
sudo chmod 775 /home/ftpuser
若需精确控制哪些用户可以登录FTP,需编辑/etc/vsftpd.user_list:
# 创建或清空用户列表文件
sudo nano /etc/vsftpd.user_list
# 添加允许登录的用户名(每行一个)
ftpuser
anotheruser
注意:需配合userlist_enable=YES和userlist_deny=NO(允许列表中的用户登录)。
配置完成后,重启服务使更改生效:
sudo systemctl restart vsftpd
# 设置开机自启(可选)
sudo systemctl enable vsftpd
若服务器启用了UFW防火墙,需开放FTP端口(默认21)及被动模式端口范围(如50000-50010):
# 开放FTP控制端口(21)
sudo ufw allow 21/tcp
# 开放被动模式端口范围
sudo ufw allow 50000:50010/tcp
# 重新加载防火墙规则
sudo ufw reload
使用FTP客户端(如FileZilla)连接服务器:
ftpuser)连接后,尝试上传、下载文件,验证权限是否正常。
若需加密FTP传输,可配置vsftpd使用SSL/TLS:
# 安装vsftpd SSL模块
sudo apt install vsftpd-ssl
# 编辑配置文件,启用SSL
sudo nano /etc/vsftpd.conf
# 添加以下配置
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
# 生成SSL证书(有效期365天)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
# 重启vsftpd
sudo systemctl restart vsftpd
通过以上步骤,即可在Ubuntu上成功设置FTP服务器用户,并根据需求调整权限和安全性。