文件共享的相关知识:
一、在window上的文件共享:
在windows平台上实现文件共享:在一台主机1上,将它建成一个文件服务器,监听在某个端口上,通过此服务将某个目录共享出去;而
另一台主机2通过网络并经过网络服务来实现访问主机1上的文件,访问的路径:UNC\\文件服务器的ip地址\要共享的目录;在windows上;
默认在后台工作的有两个服务,分别是cif |smbfs,所以说安装上windows,就相当于一个文件系统服务器。
cifs,smbfs----服务信息块协议,服务信息块文件系统来实现的;
二.NFS概述
1.Unix文件服务实现----->NFS(基于rpc,用于在同一网络中主机之间实现文件共享的服务)
2.NFS----网络文件系统,缩写是Network File Server;文件共享协议
文件传输和文件共享是依赖于RPC实现的
3.NFS理解的说法--------其功能是透过网络,让不同的机器、不同的操作系统、可以彼此分享个别文档。所以可以简单的将他看做一个
文件服务器,让自己的PC来将网络远程的NFS服务器分享的目录,挂载到本地端的机器当中,在本地端的机器看起来,那个远程主机的目
录就好像是自己的一个磁盘分区槽一样.
4.NFS的位置----位于linux内核中
linux VFS将所有文件系统的抽象为统一接口,此接口是VFS;ext3,iso9660,nfs访问接口是VFS;
共享文件不能使用root 用户;
5.NFS版本:NFSv1------sun公司内部使用
NFSv2------完全基于UDP协议
NFSv3-----redhat5系列使用;安全的异步async文件共享功能;支持TCP协议;支持64位文件大小;支持一次读取或写出;
支持Kerberos协议;
注:kerberos---补充NIS的缺点的服务,token令牌,增强认证机制,提供健壮的集中认证的用户验证;
NFSv4------redhat6系列使用;kerteros实现全方位的用户认证
6.NFS支持认证:主机、用户UID号
NIS基于集中认证:到服务器上识别用户的账号和密码;此服务叫NIS网络信息系统;以前叫yp---黄页 yellowpage
NFS(NIS)一起工作,提高安全性;NIS只用于内网
NIS----集中实现用户身份认证
kerberos----补充NIS缺点的服务;主机1的用户生成一段数据,用主机2进行加密,发送给Kerberos,再进行解密。
7.网络访问权限:
取决于文件系统权限和共享权限交集
写权限是独占的,排他
读权限是共享
8.NFS启动:
软件包:nfs-utils
启动5个进程:nfsd ,rpc.mountd ,rpc.statd,lockd ,rpc.quotad
脚本: nfs(nfsd,rcp.mountd,rpc.quotad), nfslock(rpc.statd,lockd)
接口: 2049/tcp and 2049/udp (nfsd), others semi-random (found through portmap (111/tcp and 111/udp)
配置文件: /etc/exports, /etc/sysconfig/nfs
9.在配置文件/etc/exports中定义共享文件的配置:
共享目录 [客户端1(共享权限)] [客户端2(共享权限)].......
以上的相关含义:
共享目录:欲共享目录的实际路径(使用绝对路径);有空格,用引号‘’
客户端(访问客户端列表):可访问该共享的客户端进行相关配置,指定客户端匹配的条件,如果不指定,则所有客户端均匹配;
定义匹配条件的形式:1.FQDN 2.IP地址 3.网段 4.DNS区域 5.通配符 6.ip网络地址
共享权限属性:ro-----设置共享为只读,这是默认选项
rw------设置共享为读写
async----数据异步;先将数据保存在内存,再回写入硬盘。提高效率,有可能数据丢失
sync----保持数据同步,同时将数据写入内存和硬盘,这是默认选项
root_squash----当NFS客户端当前用户是root时,将被映射为NFS服务器匿名用户
no_root_squash-----当NFS客户端当前用户是root时,将被映射为NFS服务器root用户
all_squash----将所有用户映射为NFS的匿名用户,这是NFS默认选项
注意:在定义客户端匹配条件及参数时,在多个客户端匹配条件之间必须有空格分隔;
而在客户端匹配条件与参数之间不能有空格;
在配置NFS共享目录完成后,需要重启NFS服务或通过exportfs -ar使配置生效;最后也可以通过showmount -e查看配置情况;
也可以通过查看、var/lib/nfs/etab文件NFS共享目录的所有参数
10.命令
#showmount ------用于查看主机上共享的信息
选项:-e 服务器----可以在服务器上和客户端上查看
-a 服务器----查看被挂载的主机 ------在服务器和客户端上都可以查看
-d 服务器---显示nfs服务器上共享出来的文件系统并且被挂载和访问的客户端列表
#exportfs----维护/etc/exports文件定义的共享的文件系统列表,导出文件系统
选项: -a---对所有文件系统进行操作,不能单独使用
-r-- 未导出的文件系统重新导出
-u---关闭或取消一个或多个文件系统
-v----详细信息
10.配置NFS服务过程:
1) NFS依赖于RPC协议(Remote Procedure Call)----远程过程调用,实现在两台主机之间基于OSI第五层会话层建立
二进制格式的通信机制;
2)首先检查portmap服务是否正常和启动,此服务提供RPC协议
#service portmap status
#rpcinfo -p---查看本地主机rpc上已经注册的服务并且正在使用的端口
#rpcinfo -p 指定ip地址---查看rpc服务启动情况
例:rpcinfo -p 172.16.0.1
3)查看是否安装nfs-utils软件包;没有安装,则安装;安装过,就不需要安装了;使用到的命令:
#rpm -q nfs-utils----查看是否安装此软件
#yum install nfs-utils -----安装软件
#rpm -qc nfs-utils------查看软件的配置文件
4)启动NFS服务
#service nfs status----服务状态
#service nfs start
#chkconfig nfs on ----开机自动启动服务
5)配置文件向外提供服务:
1.在配置文件/etc/exports中定义共享文件的配置:
共享目录 [客户端1(共享权限)] [客户端2(共享权限)].......
2.在服务器端创建共享目录
3.在客户端创建挂载点
4.在客户端先进行挂载才可以到服务器上访问文件
#mount -t nfs 服务器ip地址:共享目录 挂载的位置
#mount -t nfs 172.16.100.1:/vhosts /mnt/nfs
5.创建第二个共享文件
在/etc/exports文件中添加
共享目录 [客户端1(共享权限)] [客户端2(共享权限)].......
使用命令不需要挂载
#exportfs -u 172.16.0.0/16:/mydata----导出某个文件系统
#exportfs -u---取消所有的文件系统
#exportfs -arv ----重新导出所有的文件系统
#exportfs -rv----重新导出所有文件系统
#exportfs -r ----重新导出所有文件系统
#rpcinfo -p localhost---NFS端口是随机的,查看端口
7.NFS服务认证机制的验证
如果服务器创建的用户和客户端创建的用户,他们的UID一样,则可以在客户端的挂载点目录下创建
和删除文件;要是不一样,则不能创建文件。
具体过程用一个例子:
1.在服务器端:
#vim /etc/exports填写内容:
/vhosts 172.16.0.0/16(rw) 192.16.0.0/24(ro)
#rpcinfo -p 172.16.100.1 ----在客户端输入查看
#service nfs restart----在服务器上输入
2.客户端和服务器端都可以输入:
#showmount -e 172.16.100.1
#showmount -a 172.16.100.1
#showmount -d 172.16.100.1
3. 在服务器上创建目录及文件:
#mkdir /vhosts/{magdu,linux} -pv
4.在客户端建目录及文件
#mkdir /mnt/nfs
5.在客户端先挂载才可以访问服务器上的文件
#mount -t nfs 172.16.100.1:/vhosts /mnt/nfs----挂载---客户端执行命令
#cd /mnt/nfs
#ls
#cp linux/ /tmp -r
#touch a.txt ---无法创建
6.创建第二个共享文件时,不能重启服务,在服务器端服务
#exportfs -u 172.16.0.0/16:/mydata----导出某个文件系统
#exportfs -u---取消所有的文件系统
#exportfs -arv ----重新导出所有的文件系统
#exportfs -rv----重新导出所有文件系统
#exportfs -r ----重新导出所有文件系统
#rpcinfo -p localhost---NFS端口是随机的,查看端口
7.NFS服务认证机制的验证
服务器创建用户
#useradd gentoo
#chown -R gentoo:gentoo /vhosts/
#ll -d /vhosts
#id gentoo
客户端创建用户;
#useradd gentoo
#su -gentoo
#useradd add -u 503 centos
#cd /mnt/nfs
#touch a.txt ---创建成功
如果服务器创建的用户和客户端创建的用户,他们的UID一样,则可以在客户端
的挂载点目录下创建和删除文件;要是不一样,则不能创建文件。
转载于:https://blog.51cto.com/4393539/810355