首页 帮助中心 新加坡服务器 新加坡服务器怎么配置FTP用户权限?
新加坡服务器怎么配置FTP用户权限?
时间 : 2025-03-08 10:04:20 编辑 : 华纳云 阅读量 : 10

  怎么在新加坡服务器上配置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的运行状态,权限错误可以检查目录所有权和权限是否正确。

华纳云 推荐文章
怎么通过JS日志优化Linux新加坡服务器性能 美国高防云服务器配置FTP步骤(以centos系统为例) 新加坡服务器有效故障自测方法汇总 优化新加坡服务器网络和性能常用命令 华纳云新加坡服务器优势解读 CentOS7系统中配置ftp服务具体方法
客服咨询
7*24小时技术支持
技术支持
渠道支持