文件共享服务之FTP
一、什么是文件共享服务
简单理解就是文件或存储块设备可以共享给大家使用。
1、实现共享服务有三种!
(1)ftp:属于应用层服务,可以跨平台使用
(linux<--->uinx<--->windows)
(2)nfs:属于内核模式,不可跨平台
(linux<--->linux)
(3)samba:可跨平台
(linux<--->uinx<--->windows)
2、实现存储设备与服务器连接方式有三种!
(1)DAS:简单说就是连接的磁盘
(2)NAS:通过nfs/CIFS协议实现网络共享文件
(文件存储方式)电子邮件、网页服务器、多媒体流服务、档案分享等就适用于NAS存储架构
(3)SAN:通过网线或光纤实现iscsi和FCSAN将物理存储设备连接起来使用
(块存储方式较底层,需要格式化并挂载当本地磁盘使用)数据库有关的应用适用于SAN存储架构
3、附:
(1) nfs(Network File System,网络文件系统)协议实现linux的文件封装共享传输。
(2)CIFS(Common Internet File System,公共互联网文件系统)协议实现windows与linux的共享识别,例如samba就是基于CIFS(SMB)协议实现。
二、FTP
ftp:File Transfer Protocol
应用层协议:tcp,21端口
C/S架构
命令链接21(长链接)
数据链接20(传完断开在传在链接)
数据传输格式
文本传输(不应该人为干预,原文件是什么格式就用什么格式传输)
二进制传输(不应该人为干预,原文件是什么格式就用什么格式传输)
主动ftp模式
主动:由服务器创建连接
命令:
Client:50000 –> Server: 21
数据:
Server: 20/tcp –> Client: 50000+1被动ftp模式
被动:由客户端创建连接
命令:
Client:50000 –> Server: 21
数据:
Client:50000+1 –> Server: 随机端口
三、响应码
1xx: 信息
2xx: 成功类的状态码
3xx: 提示需进一步提供补充类信息的状态码
4xx: 客户端错误
5xx: 服务端错误
四、FTP存储和mysql存储有什么不同?
FTP属于非结构化数据存储,无法定义类型关系等,包括图片文件,二进制文件等
mysql属于结构化关系数据库存储,表列对应关系,可定义type及字符长度。
五、用户认证
1、虚拟用户:
用于访问某个服务的用户(mysql用户,http网站用户)和操作系统上的用户没有关系,这样做是为了安全
FTP默认是系统账户,为了系统安全,可以改成虚拟用户登录
虚拟用户可以基于文件(非系统用户的文件),也可以基于链接mysql数据实现FTP的认证登录
nsswitch
: network server switch, 名称解析框架
配置文件:/etc/nsswitch.conf
模块:/lib64/libnss*, /usr/lib64/libnss*
pam
: pluggable authentication module, 用户认证框架
模块:/lib64/security/
配置文件:/etc/pam.conf, /etc/pam.d/*以上两种框架linux自带框架,通过库调用的方式自由选择基于系统账户实现,非系统账户实现,还是数据库账户形式实现不用全部编译进去浪费资源。
2、系统用户
3、匿名用户
总结:匿名用户或虚拟用户虽然和系统用户没有关系,但是登陆后获取系统上的文件权限还是需要映射为系统用户,以系统用户的权限访问系统文件(例如:ftp系统用户,httpd系统用户)
六、FTP安装与配置
配置文件
用户认证配置文件:/etc/pam.d/vsftpd
服务脚本:/etc/rc.d/init.d/vsftpd
置文件:/etc/vsftpd/vsftpd.conf
匿名用户配置:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_ohter_write_enable=YES
系统用户的配置:
local_enable=YES
write_enable=YES
local_umask=022
禁锢所有的ftp本地用户于其家目录中:
chroot_local_user=YES
禁锢文件中指定的ftp本地用户于其家目录中:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(在此文件中添加系统用户)
虚拟用户映射系统用户
guest_enable=YES
guest_username=vuser
通过pam用户认证
pam_service_name=vsftpd
vsftpd在/etc/pam.d/vsftpd
匿名用户(映射为ftp用户)共享资源位置:/var/ftp
系统用户通过ftp访问的资源的位置:用户自己的家目录
虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户的家目录
原创文章,作者:Net18-糖糖,如若转载,请注明出处:http://www.178linux.com/14909