vsftpd(Very Secure FTP Daemon)是一款高效、功能强大且非常安全的FTP服务器软件,主要用于Linux和UNIX类操作系统。在Ubuntu上,vsftpd提供了对虚拟用户的支持,允许将用户的登录与系统的实际用户帐户分离。这种方式非常适合那些不需要与操作系统用户相对应的FTP帐户的场景。
创建虚拟用户数据库:首先,需要创建一个文本文件来存储虚拟用户名和密码。例如,创建一个名为 loguser.txt 的文件,格式如下:
user1 user1password
user2 user2password
然后,使用 db_load 命令生成数据库文件:
sudo db_load -T -t hash -f loguser.txt /etc/vsftpd_login.db
。
配置PAM文件:在 /etc/pam.d/ 目录下创建一个新的PAM配置文件,例如 vsftpd.vu,并添加以下内容:
auth required pam_userdb.so db=/etc/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd_login
。
配置vsftpd.conf文件:编辑 /etc/vsftpd.conf 文件,确保包含以下设置:
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/user_conf
这里,guest_username 是映射到虚拟用户的本地系统用户名,user_config_dir 是存放虚拟用户特定配置文件的目录。
创建用户主目录:为每个虚拟用户创建一个主目录,并设置相应的权限。例如,为名为 user1 的用户创建主目录 /home/ftp/user1,并设置权限:
sudo mkdir /home/ftp/user1
sudo chown ftp:ftp /home/ftp/user1
sudo chmod 700 /home/ftp/user1
配置用户特定的配置文件:在 /etc/vsftpd/user_conf 目录下为每个虚拟用户创建一个配置文件,例如 user1,并设置相应的权限:
local_root=/home/ftp/user1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
。
完成上述配置后,重启vsftpd服务以使更改生效:
sudo systemctl restart vsftpd
。
通过以上步骤,您可以在Ubuntu上为vsftpd配置虚拟用户,并为每个虚拟用户设置不同的目录和权限。这样可以满足不同用户的需求,同时提高系统的安全性和灵活性。