FTP:File TransferProtocol
21/tcp:
文件共享服务:应用层,ftp
NFS:Network File System (RPC: Remote Procedure Call, 远程过程调用)
Samba:CIFS/SMB
FTP: tcp, 两个连接
命令连接,控制连接:21/tcp
数据连接:
主动模式:20/tcp
被动模式:端口随机
数据传输模式(自动模式):
二进制:
文本:
ftpserver --> ftp client
This is a test file. -->
结构化数据
半结构化数据
非结构化数据
文本,二进制
html,
mp3,jpeg
服务器端程序:
wu-ftpd:
vsftpd:Very Secure ftp Daemon
proftpd:
pureftpd
Filezilla
Serv-U
客户端程序:
CLI:
ftp
lftp
GUI:
gftpd
FlashFXP
Cuteftp
Filezilla
vsftpd:
/etc/vsftpd:配置文件目录
/etc/init.d/vsftpd:服务脚本
/usr/sbin/vsftpd:主程序
基于PAM实现用户认证:
/etc/pam.d/*
/lib/security/*
/lib64/security/*
支持虚拟用户
vsftpd: (ftp, ftp)
/var/ftp:ftp服务根目录
上传和下载:
mail:
ftp: 系统用户
匿名用户 --> 系统用户:anonymous_enable
系统用户:local_enable
虚拟用户 --> 系统用户
/var/ftp: ftp用户的家目录
匿名用户访问目录
chroot: 禁锢用户于其家目录中
系统用户:
write_enable=YES:上传文件
文件服务权限:文件系统权限*文件共享权限
守护进程:
独立守护:适用于访问量大,用户在线时间长的用户
瞬时守护
由xinetd代为管理
vsftpd:
max_clients=#
max_per_ip=#
安全通信方式:
ftps:ftp+ssl/tls
sftp:OpenSSH, SubSystem, sftp(SSH)
vsftpd: PAM(手动定义配置文件)
匿名
本地
虚拟用户
MySQL:VSFTPD, users : Name,Password
/etc/vsftpd/vusers:--> db_load
USERNAME
PASSWORD
db4-utils
postconf –m
具体配置:
anon_upload_enable=YES
允许上传
anon_mkdir_write_enable=YES
允许创建文件、目录
anon_other_write_enable=YES
允许删除文件、目录
注意:只有ftp权限是远远不够的,必须同时打开本地文件系统的写权限。(两者必须同时具备时才可以执行相应的操作)
有一些特殊情况:windows上传文件到linux服务器时,上传的文件夹不会继承权限属性,文件夹内的内容已经上传了,但是看不到文件夹内的内容,删除时提示550。其本质是说我们没有对该文件夹的操作权限。需要更改目录权限。