在FTP服务器上设置虚拟用户,可以让你使用不同于系统用户的账户名和密码进行访问。以下是在常见的FTP服务器软件(如vsftpd)上设置虚拟用户的步骤:
安装vsftpd:
sudo apt-get update
sudo apt-get install vsftpd
创建虚拟用户数据库文件:
使用db_load工具创建一个虚拟用户数据库文件。
sudo touch /etc/vsftpd/virtual_users.txt
sudo chmod 600 /etc/vsftpd/virtual_users.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
创建虚拟用户映射文件: 创建一个PAM(Pluggable Authentication Modules)配置文件来映射虚拟用户到系统用户。
sudo touch /etc/pam.d/vsftpd-virtual
sudo chmod 644 /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
修改vsftpd配置文件:
编辑/etc/vsftpd.conf文件,添加或修改以下配置:
guest_enable=YES
guest_username=ftpuser
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd-virtual
重启vsftpd服务:
sudo systemctl restart vsftpd
安装ProFTPD:
sudo apt-get update
sudo apt-get install proftpd
创建虚拟用户数据库文件:
使用db_load工具创建一个虚拟用户数据库文件。
sudo touch /etc/proftpd/virtual_users.txt
sudo chmod 600 /etc/proftpd/virtual_users.txt
sudo db_load -T -t hash -f /etc/proftpd/virtual_users.txt /etc/proftpd/virtual_users.db
创建虚拟用户映射文件: 创建一个PAM配置文件来映射虚拟用户到系统用户。
sudo touch /etc/pam.d/proftpd-virtual
sudo chmod 644 /etc/pam.d/proftpd-virtual
编辑该文件,添加以下内容:
auth required pam_userdb.so db=/etc/proftpd/virtual_users
account required pam_userdb.so db=/etc/proftpd/virtual_users
修改ProFTPD配置文件:
编辑/etc/proftpd/proftpd.conf文件,添加或修改以下配置:
<IfModule mod_sql.c>
SQLBackend sqlite3
SQLAuthTypes Plaintext
SQLConnectInfo /etc/proftpd/virtual_users.db user password
</IfModule>
<Anonymous ~ftp>
User ftpuser
Group nogroup
UserAlias anonymous ftpuser
Directory /home/ftpuser
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
<Directory /home/ftpuser>
AllowOverwrite on
</Directory>
重启ProFTPD服务:
sudo systemctl restart proftpd
通过以上步骤,你可以在FTP服务器上成功设置虚拟用户,并使用这些虚拟用户进行文件传输。