直接使用本地用户(Linux系统的用户账户)来访问vsftpd服务器可能带来安全问题,变通的方法是使用虚拟用户(virtual user)来作为专门的FTP账户。FTP虚拟用户并不是操作系统的用户账户,不能登入系统,只能访问FTP服务器,对操作系统的影响更小。虚拟用户主要用来访问提供给非信任用户,但又不适合公开的内容。
PAM(Pluggable Authentication Modules)是一套身份验证共享库,用于限定特定应用程序的访问。使用PAM身份验证机制可以实现vsftpd的虚拟用户功能。实现的关键是攒关键vsftpd的PAM用户数据库文件和修改相应的PAM配置文件,具体步骤如下。
1.创建虚拟用户数据库
需要使用PAM用户数据库来验证虚拟用户,为此要建立一个采用通用数据库格式(db)的文件来存储用户名和密码。
(1)建立包含虚拟用户名和密码的文本文件。文件中奇数行为用户名,偶数行为对应的密码。例如创建/etc/vsftpd/login.txt,并在其中个输入如下内容:
abc
123
def
456
上面的文本文件包含连个用户abc和def,密码分别为123和456.
(2)执行以下命令将包含虚拟用户的文本文件转换成数据库文件。
#db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
注意:找不到db_load命令,需要安装db4软件。
(3)执行以下命令以限制改数据库我那件的访问权限。
#chmod