Linux的FTP的三种登录方式:我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。本地用户登录:使用系统用户登录,在/etc/passwd中。虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。本文实验的Linux系统是CentOS5update2一、本地数据文件方式1.添加虚拟用户口令文件[root@CentOS5/]#vi/etc/vsftpd/vftpuser.txt添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。[root@CentOS5/]#rpm–qa|grepdb4-utils[root@CentOS5/]#rpm–ivhdb4-utils-4.3.29-9.fc6.i386.rpm下面使用db_load命令生成虚拟用户口令认证文件。[root@CentOS5/]#db_load–T–thash–f/etc/vsftpd/vftpuser.txt/etc/vsftpd/vftpuser.db3.编辑vsftpd的PAM认证文件在/etc/pam.d目录下,[root@CentOS5/]#vi/etc/pam.d/vsftpd将里面其他的都注释掉,添加下面这两行:authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vftpuseraccountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vftpuser4.建立本地映射用户并设置宿主目录权限所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。[root@CentOS5/]#useradd–d/home/vftpsite–s/sbin/nologinvftpuser[root@CentOS5/]#chmod700/home/vftpsite5.配置vsftpd.conf(设置虚拟用户配置项)[root@CentOS5/]#vi/etc/vsftpd/vsftpd.confguest_enable=YES#开启虚拟用户guest_username=vftpuser#FTP虚拟用户对应的系统用户pam_service_name=vsftpd#PAM认证文件6.重启vsftpd服务[root@CentOS5/]#servicevsftpdrestart7.测试虚拟用户登录FTPC:\User\Administrator>ftp192.168.120.240连接到192.168.120.240。220WelcometoBOBFTPserver用户(192.168.120.240(none)):markwang331Pleasespecifythepassword.密码:230Loginsuccessful.二、数据库服务器(MySQL)方式1.安装MySQL我使用的是Tar包安装的MySQL,版本号:mysql-6.0.8-alpha.tar.gz具体安装方法,请查看我的另一篇文章“部署LAMP+Discuz!7.0”。2.建立本地映射用户并设置宿主目录权限[root@CentOS5/]#useradd–d/home/vftpsite–s/sbin/nologinvftpuser[root@CentOS5/]#chmod700/home/vftpsite3.配置vsftpd.conf(设置虚拟用户配置项)[root@CentOS5/]#vi/etc/vsftpd/vsftpd.confguest_enable=YES#开启虚拟用户guest_username=vftpuser#FTP虚拟用户对应的系统用户pam_service_name=vsftpd#PAM认证文件4.在MySQL中建立用户口令数据库[root@CentOS5/]#mysql–uroot–pmysql>createdatabasevftpuser;#建立虚拟用户数据库,库名vftpusermysql>usevftpuser;#进入vftpuser数据库mysql>createtableusers(namechar(16)binary,passwdchar(16)binary);#建立虚拟用户口令表,表名usersmysql>insertintousers(name,passwd)values('bobyuan',password('111'));mysql>insertintousers(name,passwd)values('markwang',password('111'));#建立两个虚拟用户,bobyuan和markwang注:在这里我用这种方法添加的虚拟用户密码都是经过MySQL加密的,加密后的密码pam-mysql不能识别(MySQL和pam-mysql兼容性有些问题),因此本次实验使用明文保存密码。添加明文密码:方法一:单个添加用户mysql>insertintousers(name,passwd)values('bobyuan','111');mysql>insertintousers(name,passwd)values('markwang',‘111');方法二:批量添加用户新建vftpuser.txt文件[root@CentOS5/]#vivftpuser.txt添加用户名和密码,注意字段数据之间要用Tab键隔开。bobyuan111markwang111mysql>usevftpuser;mysql>loaddatalocalinfile“/vftpuser.txt”intotableusers;mysql>flushprivileges;mysql>grantselectonvftpuser.userstovftpuser@l...