nfs(Network FileSystem)的简单配置
如果想要在window和linux之间共享文件,那么用samba。如果仅仅想在Unix like系统之间共享文件,那么可以用NFS。
这篇文章分为两个部分,第一部分只是简单的用:照着写的步骤一步步来就可以实现nfs共享了,时间紧迫的可以只看这一部分;第二部分是比较详细的介绍了一些配置,有点干货。
我用的是centos 6.6(Final) X86_64操作系统。服务器IP:192.168.128.140 ;客户端IP:192.168.128.136
先配置个最简单的server和client能够让nfs跑起来。
- server端配置(nfs依赖一个叫rpc的服务。我用的是centos 6.6,所以用rpcbind,其他版本的linux可能有其他的程序提供rpc服务)
- 安装rpcbind和nfs-utils : yum install rpcbind nfs-utils
- 修改/etc/exports文件。(有时这个文件不存在,那就自己创建一个),添加一条 /tmp 192.168.128.136(rw,no_root_squash) 。意思是允许把 /tmp 这个文件夹分享给 192.168.128.136这个客户端,并且客户端具有read和write权限,并且如果客户端是root登录的话,那他在/tmp下创建的文件的所有者也是root。具体的解释这里就不说了。反正只要把 /tmp 192.168.128.136(rw,no_root_squash) 复制到/etc/exports文件里就行了。
(注意/etc/exports是文件,不是文件夹) - 启动 rpc 和nfs ,依次运行下面的三条绿色的命令
[root@www ~]# /etc/init.d/rpcbind start
# 如果 rpcbind 本來就已經在執行了,那就不需要啟動啊! [root@www ~]# /etc/init.d/nfs start
# 有時候某些 distributions 可能會出現如下的警告訊息:
exportfs: /etc/exports []: No 'sync' or 'async' option specified
for export "192.168.100.10:/home/test".
Assuming default behaviour ('sync').
# 上面的警告訊息僅是在告知因為我們沒有指定 sync 或 async 的參數,
# 則 NFS 將預設會使用 sync 的資訊而已。你可以不理他,也可以加入 /etc/exports。 [root@www ~]# /etc/init.d/nfslock start
这样服务器就好了。还有如果不出现意外的话,服务器端防火墙一定会阻止客户端的连接。所以为了简单直接关了防火墙吧。(开放端口最后讲)
- client端配置
- 和server端第一步一样,安装rpcbind和nfs-utils: yum install rpcbind nfs-utils
- 启动 rpc 和nfs ,依次运行下面的两条绿色的命令
[root@clientlinux ~]# /etc/init.d/rpcbind start
[root@clientlinux ~]# /etc/init.d/nfslock start - 把服务器的文件夹mount到本地
[root@clientlinux ~]# mkdir -p /home/nfs/public
[root@clientlinux ~]# mount -t nfs 192.168.128.140:/temp /home/nfs/public #意思是把远程的/temp文件夹mount到本地的/home/nfs/public文件夹
另外如果不记得服务器共享了哪些文件夹,可以用命令 showmount -e 服务器端IP 来查询。
好了,在客户端 cd /homt/nfs/public 你就会发现你进入的其实是服务器端的/tmp文件夹。你在里面touch一个文件在返回服务器端的/tmp文件夹看看。
上面的配置已经可以运行nfs了。下面对于有些东西详细说一下。觉得内容繁杂的并且只是想下用着的可以不看。
1. /etc/exports配置文件。看下面的例子:
/tmp 192.168.100.0/(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
/tmp1 *(rw,no_root_squash)
/tmp2 192.168.100.123(rw)
意思是服务器有三个文件夹/tmp, /tmp1,/tmp2是共享的,不过他们共享的对象不一样。猜一猜也知道共享给了谁^_^。那个谁有几种书写方式:
- 指定ip地址的主机:192.168.0.200
- 指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
- 指定域名的主机:david.bsmart.cn
- 指定域中的所有主机:*.bsmart.cn
- 所有主机:*
至于小括号里面的内容,表示要赋予权限,看下表:
参数值 | 内容说明 |
rw ro |
该目录分享的权限是可读写 (read-write) 或唯读 (read-only),但最终能不能读写,还是与档案系统的 rwx 及身份有关。 |
sync async |
sync 代表资料会同步写入到记忆体与硬碟中,async 则代表资料会先暂存于记忆体当中,而非直接写入硬碟! |
no_root_squash root_squash |
客户端使用 NFS 档案系统的帐号若为 root 时,服务器端该如何判断这个帐号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的档案系统,那么这里就得要开 no_root_squash 才行! |
all_squash | 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名使用者,通常也就是 nobody(nfsnobody) 啦! |
anonuid anongid |
anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 萝。 |
以上是一些常见的设置,跟多的可以用 man exports 命令去查看。
2. 关于客户端连接服务器端用户的问题。(假设客户端是用tomcat用户登录的,那他连接服务器并在共享文件夹里新创建了一个文件,那么这个文件所有者是谁呢?)
I. 客户端连接时候,对普通用户的检查
a. 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;
b. 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;
c. 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;
II. 客户端连接的时候,对root的检查
a. 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;
b. 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;
c. 如果没有明确指定,此时root用户被压缩为nfsnobody;
d. 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组;
3.
nfs(Network FileSystem)的简单配置的更多相关文章
- Linux nfs下载安装与简单配置
1.什么是NFS? 全称 network file system 网络文件系统 通过网络存储和组织文件的一种方法或机制. 2.为什么要用共享存储? 前端所有的应用服务器接收到用户上传的图片.文件.视频 ...
- Linux下NFS服务器的搭建与配置
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- Linux下NFS服务器的搭建与配置(转载)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- Linux下NFS服务器的搭建与配置(转)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- NFS服务器的安装与配置
由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程. 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于 ...
- Linux NFS服务器的安装与配置方法(图文详解)
这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...
- Linux NFS服务器的安装与配置详解
一.NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可 ...
- mrtg监控网络流量简单配置
Mrtg服务器搭建(监控网络流量) [日期:2012-07-03] 来源:Linux社区 作者:split_two [字体:大 中 小] [实验环境] 监控机:Red Hat linux 5.3 ...
- <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342
前些日子在公司搭了一个模拟生产环境的平台.由于是测试环境,资源有限只能使用虚拟机实现,所以存储这块就想到了使用FreeNAS.很早以前玩儿过几次,当时是生产环境需要上存储设备,经过对比还是选择的更可靠 ...
随机推荐
- 3.30课·········Marquee标签
页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...
- <linux硬件及硬盘分区>关于硬盘的规划和使用细节
ps:期末考试 终于结束了,这下我也终于有时间开始继续经营我的博客.这个学期上的一些课真的非常有用,感觉很多课程细地讲都可以写成非常精致的技术博文,比如流水线技术,数据库的一些技术,大学里的考试考的内 ...
- BEM —— 源自Yandex的CSS 命名方法论
原文链接: https://segmentfault.com/a/1190000000391762 人们问我最多的问题之一是在CSS类名中--和__是什么意思?它们的出现是源于BEM和Nicolas ...
- Hibernate技术
Hibernate中3个重要的类: 配置类(configuration) 负责管理Hibernate的配置信息,包含数据库连接URL.数据库用户.数据库密麻麻.数据库驱动等. 会话工厂类(Sessio ...
- 英语发音规则---oo
英语发音规则---oo 一.总结 一句话总结: 1.重读音节词尾的字母组合oo发音素[u:]的音? too [tu:] adv.太;也 zoo [zu:] n.动物园 room [ru:m] n.房间 ...
- GridView设置多个DatakeyNames
1.aspx页面GridView直接绑定DataKeyNames aspx设置: <asp:GridView ID="grvGrid" runat="server& ...
- 分享知识-快乐自己:Java常用API总结
1):java.io.BufferedReader类(用于从文件中读入一段字符:所属套件:java.io) 1. 构造函数BufferedReader(java.io.FileReader FileR ...
- Oracle忘记用户名密码
一.oracle 11g登录服务开启 成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写 ...
- stl_iterator.h
stl_iterator.h // Filename: stl_iterator.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...
- mysql编码
Mysql中文乱码问题完美解决方案 修改查看MYSQL字符集(charset) MySQL 乱码之我见 10分钟学会理解和解决MySQL乱码问题 /etc/mysql/my.cnf /etc/init ...