温馨提示×

Linux vsftp如何配置虚拟用户

小樊
34
2025-12-18 02:51:09
栏目: 云计算

在Linux系统中,vsftpd(Very Secure FTP Daemon)是一个流行的FTP服务器软件。要为vsftpd配置虚拟用户,你需要遵循以下步骤:

  1. 安装vsftpd(如果尚未安装): 对于基于Debian的系统(如Ubuntu),使用以下命令:

    sudo apt-get update
    sudo apt-get install vsftpd
    

    对于基于RPM的系统(如CentOS、Fedora),使用以下命令:

    sudo yum install epel-release
    sudo yum install vsftpd
    
  2. 创建一个新用户组,用于虚拟用户:

    sudo groupadd ftpusers
    
  3. 创建一个新用户,用于vsftpd虚拟用户。这个用户不需要登录shell,因此我们将使用/sbin/nologin作为shell:

    sudo useradd -g ftpusers -s /sbin/nologin ftpvirtualuser
    
  4. 为新用户设置密码:

    sudo passwd ftpvirtualuser
    
  5. 创建一个目录,用于存储虚拟用户的FTP文件:

    sudo mkdir /home/ftpvirtualuser
    sudo chown ftpvirtualuser:ftpusers /home/ftpvirtualuser
    sudo chmod 755 /home/ftpvirtualuser
    
  6. 安装并配置db_load工具,用于生成虚拟用户数据库:

    sudo apt-get install db-utils # 对于基于Debian的系统
    sudo yum install db4-utils # 对于基于RPM的系统
    
  7. 创建一个虚拟用户数据库文件:

    sudo touch /etc/vsftpd/virtual_users.txt
    sudo chmod 666 /etc/vsftpd/virtual_users.txt
    
  8. 使用文本编辑器打开/etc/vsftpd/virtual_users.txt文件,并添加虚拟用户信息,格式如下:

    ftpvirtualuser:password
    

    保存并关闭文件。

  9. 使用db_load命令将文本文件转换为数据库文件:

    sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
    
  10. 编辑vsftpd配置文件(通常位于/etc/vsftpd/vsftpd.conf),以启用虚拟用户并配置相关选项:

    sudo nano /etc/vsftpd/vsftpd.conf
    

    在配置文件中添加或修改以下行:

    guest_enable=YES
    guest_username=ftpvirtualuser
    user_sub_token=$USER
    local_root=/home/$USER
    chroot_local_user=YES
    allow_writeable_chroot=YES
    virtual_use_local_privs=YES
    pam_service_name=vsftpd-virtual
    
  11. 创建一个PAM服务文件,用于验证虚拟用户:

    sudo touch /etc/pam.d/vsftpd-virtual
    sudo chmod 666 /etc/pam.d/vsftpd-virtual
    
  12. 使用文本编辑器打开/etc/pam.d/vsftpd-virtual文件,并添加以下内容:

    auth required pam_userdb.so db=/etc/vsftpd/virtual_users
    account required pam_userdb.so db=/etc/vsftpd/virtual_users
    
  13. 重启vsftpd服务以应用更改:

    sudo systemctl restart vsftpd
    

现在,你已经成功为vsftpd配置了虚拟用户。你可以使用新创建的虚拟用户(在本例中为ftpvirtualuser)登录FTP服务器。

0