FTP的全称是文件传输协议(FTP),是传输文件的专业协议。它工作在OSI模型的第七层,也就是网络层,使用TCP而不是UDP。这样,FTP手机客户端和服务器在建立连接之前,需要经历一个“三次握手”的全过程。FTP服务的另一个关键特征是它可以独立于服务平台。
在LINUX下完成FTP服务的手机软件有很多,最常见的有vsftpd、Wu-ftpd、Proftp等。默认情况下,vsftpd安装在RedHatEnterpriseLinux中。
一般情况下,用户在浏览ftp服务器时,都要经过身份验证。只有经过FTP服务器的相关认证后,用户才能浏览和传输文件。vsftpd显示了三种FTP登录方法:
(1)匿名
Anonymous是一种广泛使用的FTP服务器。如果用户在FTP服务器上没有帐户,用户可以使用anonymous作为他们的用户名和电子邮件地址作为他们的登录密码来登录。匿名用户登录FTP服务器时,其登录目录是匿名FTP服务器的根目录/var/FTP。为了更好的减轻FTP服务器的负载,一般情况下,匿名账户的提交应该是关闭的。
(2)真实(真实账号)
Real也叫本地账号,用真实用户名和登录密码登录,但必要条件是用户在FTP服务器上有自己的账号。用真实账号登录后,他们的登录目录就是用户自己的目录,是系统软件在创建账号时自动建立的。
(3)来宾(虚拟帐户)[/s2/]
如果用户在FTP服务器上有一个帐户,但是这个帐户只用于文件传输服务,那么这个帐户就是guest,guest,这是真实帐户的一种方式。它们的区别在于登录FTP服务器后,geust无法浏览主机目录以外的内容。
下面我们来详细解释一下。
接下来大家刚刚完成了vsftpd的虚拟用户的角色:
1.yum安装vsftpd程序流程:
2.更改环境变量
备份数据改变环境变量
[root@master ~]# cd /etc/vsftpd [root@master vsftpd]# ll total 28 -rw-------. 1 root root 125 Oct 18 07:54 ftpusers -rw-------. 1 root root 361 Oct 18 07:54 user_list -rw-------. 1 root root 4599 Oct 18 07:54 vsftpd.conf -rw-------. 1 root root 4599 Jan 6 10:53 vsftpd.conf.bak -rwxr--r--. 1 root root 338 Oct 18 07:54 vsftpd_conf_migrate.sh [root@master vsftpd]# cp vsftpd.conf{,.bak} [root@master vsftpd]# cat vsftpd.conf | grep "^[^#]" anonymous_enable=NO //是不是容许anonymous登录FTP服务器,默认设置是容许的。 local_enable=YES //是不是容许当地用户登录FTP服务器,默认设置是容许 write_enable=YES //是不是容许用户具备在FTP服务器文档中实行写的管理权限,默认设置是容许 anon_umask=022 //设定虚拟用户的文档形成掩码为022,默认设置是077 dirmessage_enable=YES //激话目录信息内容,当远程控制用户变更目录时,将出現信息提示 xferlog_enable=YES //开启提交和免费下载日志作用 connect_from_port_20=YES //开启FTP数据信息端口号的联接要求 xferlog_file=/var/log/vsftpd.log //设定日志文档的文件夹名称和储存途径,它是默认设置的 xferlog_std_format=YES //是不是应用规范的ftpd xferlog日志格式文件 listen=YES //使vsftpd 处在单独起动方式 user_config_dir=/etc/vsftpd/vuser_dir //应用虚拟用户环境变量的目录 pam_service_name=/etc/pam.d/ftp.vu //设定PAM认证的环境变量名字,该文件储放在/etc/pam.d/目录下. userlist_enable=NO //用户目录中的用户是不是容许登录FTP服务器,默认设置是不允许 chroot_list_enable=YES //假如期待用户登录后不可以转换到自身目录之外的其他目录,必须设定此项 tcp_wrappers=YES //应用tcp_wrqppers做为服务器密钥管理方法 guest_enable=YES //是不是开启宾客用户(也就是开启虚拟用户) guest_username=root //假如开启了虚拟用户后文件上传改动文档的用户名 chown_uploads=YES //是不是开启文件上传后改动为特定的属主 chown_username=root //是不是开启文件上传后改动为特定的属主用户3.在/etc/vsftpd/下设置两个目录
vuser_db #事后储放虚拟用户的环境变量 vuser_dir #储放虚拟用户的验证文档 [root@master vsftpd]# mkdir vuser_db vuser_dir [root@master vsftpd]# cd vuser_db/ [root@master vuser_db]# ll total 20 -rw-r--r--. 1 root root 69 Jan 5 11:25 login_vuser -rw-r--r--. 1 root root 12288 Jan 5 11:26 vuser.db [root@master vuser_db]# vim login_vuser //下列是login_vuser虚拟用户的帐号登陆密码文件格式,合数个人行为用户名,偶数个人行为登陆密码 user003 20150105 user004 20150106 user005 20150107 //形成数据文件 //选择项-T容许应用软件可以将文本文档转译加载进数据库查询。因为大家以后是将虚拟用户的信息内容以文档方法储存在文档里的,为了更好地让Vsftpd这一应用软件可以根据文原本加载用户数据信息,务必要应用这一选择项。 假如特定了选择项-T,那麼一定要追跟子选择项-t 子选择项-t,增加在在-T选择项后,用于特定转译加载的数据库类型。拓展详细介绍下,-t能够特定的基本数据类型有Btree、Hash、Queue和Recon数据库查询。 -f:主要参数后边接包括用户名和登陆密码的文本文档,文档的內容是:合数行用户名、双数行登陆密码 [root@master vuser_db]# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db4.更改pam验证控制模块
[root@master vuser_db]# cd /etc/pam.d/ [root@master vuser_db]# vim ftp.vu //这一文件夹名称要与主环境变量中的pam_service_name特定的一致 //最终面的vuser便是vuser.db,可是这儿的后缀名并不是必须写的 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser5.为虚拟用户建立匹配的文档。
[root@master vsftpd]# cd /etc/vsftpd/vuser_dir/ [root@master vuser_dir]# ll //login_vuser中有多少个帐号就建立多少个虚拟用户文档 total 6 -rw-r--r--. 1 root root 177 Jan 5 17:03 user003 -rw-r--r--. 1 root root 177 Jan 5 17:09 user004 -rw-r--r--. 1 root root 177 Jan 5 17:19 user005 [root@master vuser_dir]# vim user003 anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/data/www/test //特定虚拟用户有管理权限登录到哪一个目录 chown_upload_mode=0777 //虚拟用户文件上传的权限管理至此,大部分设备完成,可以开始vsftpd服务项目:
然后就可以在windows下直接登录测试了:
好了,这里,pam验证的vsftpd的虚拟用户已经完全配备完毕,可以完成虚拟用户登录FTP了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)