怎么在新加坡服务器上配置FTP用户权限?配置FTP用户权限通常涉及到创建系统用户、分配家目录、设置目录权限、配置FTP服务器限制用户访问其家目录,以及设置上传/下载权限等方面。比较常用的FTP服务器软件比如vsftpd或ProFTPD,这两者的配置方式并不同。并且在设置权限的时候,不同的用户可能有不同的访问权限,比如有的用户只能上传,有的只能下载或者只能访问特定目录,这就需要通过配置不同的用户组和目录权限来实现。
在新加坡服务器上配置FTP用户权限时,需结合FTP服务软件和系统用户权限管理,下面我们以vsftpd为例,为大家简单介绍其配置流程。
步骤一、安装FTP服务
安装 vsftpd
sudo apt update
sudo apt install vsftpd
启动并设置开机自启
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
步骤二、创建 FTP 用户并配置权限
创建专用FTP用户:
# 创建用户(如 ftpuser),指定家目录为 /var/ftp(禁止 SSH 登录)
sudo useradd -m -d /var/ftp -s /usr/sbin/nologin ftpuser
# 设置密码
sudo passwd ftpuser
# 修改目录权限
sudo chown ftpuser:ftpuser /var/ftp
sudo chmod 755 /var/ftp
配置用户仅能访问家目录(Chroot),编辑 vsftpd 配置文件 /etc/vsftpd.conf:
# 启用 chroot 限制用户只能访问家目录
chroot_local_user=YES
allow_writeable_chroot=YES
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 启用文件上传
write_enable=YES
重启vsftpd服务:
sudo systemctl restart vsftpd
步骤三、细化权限控制
限制用户上传/删除权限,通过目录权限和FTP配置控制:
# 创建用户子目录(例如 upload)
sudo mkdir /var/ftp/upload
sudo chown ftpuser:ftpuser /var/ftp/upload
sudo chmod 775 /var/ftp/upload
# 在 /var/ftp 中禁止删除操作(设置 sticky 位)
sudo chmod +t /var/ftp
配置用户黑名单/白名单,在 /etc/vsftpd.conf 中添加:
# 用户黑名单(禁止特定用户)
userlist_deny=YES
userlist_file=/etc/vsftpd.userlist
# 用户白名单(仅允许列表中的用户)
# userlist_deny=NO
将用户名写入文件 /etc/vsftpd.userlist:
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
步骤四、使用虚拟用户(高级场景)
若需更灵活的权限管理(如多用户不同权限),可使用虚拟用户(不创建系统用户)。
安装依赖
sudo apt install libpam-pwdfile
创建虚拟用户数据库
# 创建用户文件(格式:用户名和密码交替)
sudo mkdir /etc/vsftpd
echo "user1" | sudo tee -a /etc/vsftpd/virtual-users.txt
echo "password1" | sudo tee -a /etc/vsftpd/virtual-users.txt
# 生成数据库文件
sudo db_load -T -t hash -f /etc/vsftpd/virtual-users.txt /etc/vsftpd/virtual-users.db
sudo chmod 600 /etc/vsftpd/virtual-users.*
配置PAM认证创建文件 /etc/pam.d/vsftpd-virtual:
auth required pam_pwdfile.so pwdfile /etc/vsftpd/virtual-users.db
account required pam_permit.so
修改 vsftpd 配置,编辑 /etc/vsftpd.conf:
# 禁用本地用户,启用虚拟用户
local_enable=NO
guest_enable=YES
guest_username=ftpuser # 映射到系统用户
virtual_use_local_privs=YES
pam_service_name=vsftpd-virtual
user_config_dir=/etc/vsftpd/user_conf
配置虚拟用户权限,创建目录 /etc/vsftpd/user_conf,为每个用户创建配置文件(如 user1):
# /etc/vsftpd/user_conf/user1
local_root=/var/ftp/user1
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
其实,上述流程大概就走完了,但是为了保证FTP服务器的安全性,我们还需要做一些安全加固措施,比如:
防火墙放行FTP端口:
sudo ufw allow 20/tcp # FTP 数据端口
sudo ufw allow 21/tcp # FTP 控制端口
sudo ufw reload
启用SSL/TLS 加密,生成证书并配置vsftpd:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt
编辑 /etc/vsftpd.conf:
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
最后,我们还需要进行测试FTP的连接,使用FTP客户端(如 FileZilla)连接服务器验证权限,比如地址,用户名和密码,目录权限(检查上传、下载、删除是否受限),这样才算是一个完整的在新加坡服务器上配置FTP用户权限的流程。有的用户可能配置完以后会遇到连接失败、权限错误的问题,如果连接失败可以检查防火墙和vsftpd的运行状态,权限错误可以检查目录所有权和权限是否正确。