第十一章:《FTP文件传输服务》
1.FTP连接及传输模式:
1)主动模式:服务器主动发起数据连接。
2)被动模式:服务器被动等待被客户端连接。

2.传输模式:
1)文本模式,也叫ASCII模式,只用于纯文本传输。
2)二进制模式,也叫Binary模式,二进制模式效率更高,一般系统会自行匹配,无须手动干预。

3.FTP用户类型:
1)匿名用户;(常用,无须密码可登陆)
2)本地用户;(不常用,一般属于系统用户,不安全)
3)虚拟用户;(常用,关联到本地用户的一个虚拟用户)

在linux中一般用vsftp这个软件。
ftpusers文件:类似黑名单,在此文件中的用户将无法登陆FTP服务器。
user_list文件:在此文件中的用户,是否可以登录FTP服务器看vsftp.conf中具体的配置,默认启用了用户无法登陆。

匿名用户的配置文件:
[root@www ~]# egrep -v "^$|^#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES(启用匿名用户)
write_enable=YES(支持任何方式的写入)
anon_umask=022(匿名用户上传数据的权限掩码)
dirmessage_enable=YES
xferlog_enable=YES(启用xferlog日志,默认在/var/log/xferlog)
connect_from_port_20=YES(允许服务器主动模式)
xferlog_std_format=YES(启用标准的xferlog日志格式)
listen=YES(是否以独立运行的方式监听服务)
pam_service_name=vsftpd(用户认证,匿名用户无需设置)
tcp_wrappers=YES
anon_upload_enable=YES(允许匿名用户上传文件)
anon_mkdir_write_enable=YES(允许匿名用户创建目录)
anon_other_write_enable=YES(允许匿名用户有其他的写入权限;如:删除、覆盖、改名。)

本地用户的配置文件
[root@www ~]# egrep -v "^$|^#" /etc/vsftpd/vsftpd.conf
local_enable=YES(启用本地用户)
write_enable=YES
local_umask=022(本地用户上传数据的权限掩码)
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES(将本地用户锁定在其家目录中,一般为了安全,都会锁定)
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES

配置虚拟用户:
1.建立虚拟用户和数据库
vim vuser.list
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.
2.创建虚拟用户映射的系统用户
useradd -d /var/market/ -s /sbin/nologin hongwu
chmod 755 /var/market/
3.设置虚拟用户的认证
vim /etc/pam.d/vsftpd .vu
4.配置FTP的配置文件(如
配置)
vim vsftpd.conf
5.创建虚拟用户的配置目录
mkdir vusers_dir
6.编辑在虚拟用户的配置目录对应的虚拟用户,为其添加对应的权限
vim devadm
7.重新加载服务
/etc/init.d/vsftpd reload

*虚拟用户的配置文件:
[root@www ~]# egrep -v "^$|^#" /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
anon_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
user_config_dir=/etc/vsftpd/vuser_conf(虚拟用户的具体权限的配置路径)
guest_enable=YES(启用虚拟用户)
guest_username=hongwu(虚拟用户映射的系统用户名)
pam_service_name=vsftpd.vu(虚拟用户认证的文件)
userlist_enable=NO(是否启用userlist文件)
tcp_wrappers=YES