FTP:File Transfer Protocol
监听在:21/tcp
文件共享服务:应用层,ftp
NFS:Network File System (RPC:Remote Procedure Call,远程过程调用)
Samba:CIFS/SMB
FTP:tcp,两个连接
1.命令连接,控制连接:一直打开 21/tcp
2.数据连接:按需打开
主动模式:20/tcp 一旦客户端请求数据,服务器主动连接客户端
被动模式:(端口随机)当客户端请求数据的时候,不是通过服务器主动连接,而是通过命令连接发一个报文给客户端,告诉服务器打开了一个端口,报文有两个数字,例如,(151,20),服务器了151*256+20这个端口,等待客户端连接

数据传输模式(自动模式):
支持二进制,文本,由服务器自动选择
ftp server --> ftp client
ftp服务器端程序:
wu-ftpd
vsftpd:Very Secure ftp Daemon
proftpd
Filezilla
Serv-U
客户端程序:
CLI:
ftp
lftp
GUI:
gftpd
FlashFXP
Cuteftp
Filezilla
红帽默认安装vsftpd
vsftpd:
/etc/vsftpd:配置文件目录
/etc/init.d/vsftpd:服务脚本
/usr/sbin/vsftpd:主程序
基于PAM实现用户认证(PAM相当于nsswitch)
/etc/pam.d/*
/lib/security/*
/lib64/security/*
支持虚拟用户
vsftpd(ftp,ftp):/var/ftp:提供文件的目录,只允许root用户有写权限
ftp:用户
匿名用户-->系统用户:anonymous enable
系统用户:local endale
虚拟用户-->系统用户
/var/ftp:ftp用户的主目录
yum install vsftpd
rpm -ql vsftp
service vsftpd start
chkconfig vsftpd on
/var/ftp/pub
service iptables stop

cd /etc/vsftdp
cp vsftpd.conf vsftpd.conf.bak
# getenforce
# setenforce 0
# vim vsftpd.conf
man vsftpd.conf
添加一个用户:
useradd hadoop
echo "hadoop" | passwd --stdin hadoop

tcpdump -i eth0 -nn -X -vv tcp port 21 and ip host 192.168.230.100
在浏览器测试:

ftp://hadoop:hadoop@192.168.230.100

cp /etc/issue /home/hadoop/
用客户端上传文件:

使用匿名用户上传文件不可以

在配置文件里:
anon_upload_enable=YES
cd /etc/vsftpd
makir /var/ftp/upload
setfacl -m u:ftp:rwx /var/ftp/upload/
getfacl /var/ftp/upload/
getfacl: Removing leading '/' from absolute path names
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x