linux下3大文件共享方法
1.NFS
NFS服务器配置
编辑/etc/exports,在文件中列出,要共享的目录。书写规则是:共享目录主机(参数)。并且每条规则占据一行。例如:
/mnt/mp3 192.168.10.168(ro,sync, no_root_squash)
上面的规则代表将/mnt/mp3目录以读写同步方式共享给主机192.168.10.168。如果登陆到NFS主机的用户是root,那么该用户就具有NFS主机的root用户的权限。
具体的可选参数如下所示:
- rw:可读写的权限
- ro:只读的权限
- no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限
- root_squash:在登入NFS主机使用目录的使用者如果是root时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的UID与GID都会变成nobody那个身份
- all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody
- anonuid:将登入NFS主机的用户都设定成指定的userid,此ID必须存在于/etc/passwd中
- anongid:同anonuid,但是变成groupID就是了
- sync资料同步写入存储器中
- async:资料会先暂时存放在内存中,不会直接写入硬盘
- insecure允许从这台机器过来的非授权访问
客户机配置
客户机配置相对简单,只需要使用下述命令mount NFS文件系统即可:
#mount -t nfs 192.168.10.168:/home /mnt/mp3
上述命令将远程的共享目录挂接到本地的/home目录下,用户可以直接对该目录进行操作,从而获取远程的共享资源。
启动NFS服务
#service portmap start # service nfs start
下面通过一个具体的例子来介绍NFS的安全性配置。假设在某个网站上有某个目录名为/popgame目录可以开放给NFS客户机来进行下载共享等工 作,而这台服务器的IP地址为:202.168.10.8,它可以开放目录给的主机的IP地址为202.168.10.10、 202.168.10.13(当然可以提供给更多的服务器,而且他们的IP地址也可以各式各样,现在举的例子有点像局域网中的情况,不过原理相同)。那么 我们首先就需要对服务器端的/etc/exports文件进行编写:
我们先进入目录/etc,然后vi exports,那么就会进入到该文件的编辑界面,我们输入如下的内容:
/popgame 202.168.10.10(ro) 202.168.10.13(ro)
我们可以清楚的看到,目录/popgame只能导出到IP地址为上述的客户机上,而且他们的权限也只能是只读,因为他们只是需要简单的共享下载游戏 的功能,并不需要具备创建目录、修改文件的功能,而且如果提供了的话,那将会出现安全隐患。下面接着配置客户机的/etc/fstab文件,进入该文件你 将需要加入如下的内容,原文件上已经有的内容不要随意更改,否则会影响系统配置,影响文件系统:
202.168.10.8: /popgame /mnt/game nfs ro 0 0
其中的/mnt/game目录是你要将服务器上的/popgame目录挂接到你的客户机上的本地目录,也就是说,当共享了NFS文件系统以后,你可以通过访问本地目录/mnt/game来访问共享的文件。因为现在有两台客户机,所以每一台上都要如上配置。
配置完成以后,就需要在客户机上将服务器的NFS挂接到本地客户机上了,命令如下所示:
mount –t nfs 202.168.10.8: /popgame /mnt/game
特别需要注意的是:在执行命令之前,你必须先要关掉本地客户机上的防火墙,否则也不会挂接成功。原因是防火墙将会阻碍远程过程调用。现在你就可以放心的使用远程的网络资源了。
总结基于yum 部署nfs
NFS服务器端执行命令语句:
yum -y install nfs-utils rpcbind
编辑/etc/exports设置需要共享的目录
内容类似
/byRuiy/hack 192.168.1.158(ro,sync,no_root_squash)
语句表示将/byRuiy/hack 目录 以读写同步方式共享给nfs客户端
在NFS客户端执行命令语句:
mount -t nfs 192.168.1.159:/byRuiy/hack /rui
表示将服务器的/byRuiy/hack 目录挂载到/rui目录
sshfs挂载远程目录到本地
2. sshfs
yum 安装sshfs 安装RPMForge
Centos安裝:
預設的yum套件來源並無sshfs這個套件,安裝RPMForge來擴增套件來源
1.先安裝rpmforge
參考:http://wiki.centos.org/zh-tw/AdditionalResources/Repositories/RPMForge
我的server是 Centos 5.6 for i386
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
(可根据使用的Linux版本 到http://pkgs.repoforge.org/rpmforge-release/ 自行选择下载)
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
2.安裝完rpmforge後,就可以使用yum來安裝sshfs
yum install fuse-sshfs
掛載遠端資料:
1.先建立一個掛載點
mkdir /tmp/sfr2.掛載遠端檔案
sshfs root@sfr:/light/MAIN /tmp/sfr
or
sshfs -p 22 root@sfr:/light/MAIN /tmp/sfr
完成,你可在本機的/tmp/sfr 操作遠端檔案了
卸載:
umount /tmp/sfr
or
fusermount -u /tmp/sfr
简单助记一下
基于nfs目录共享,不论在客户端还是在服务端修改,同步到两端;
基于sshfs目录,只有在服务端修改 的会在客户端出现,但是在客户端挂载共享目录修改,则不会被同步服务器端的;
3.samba服务器