linux 深入应用 NFS
以下实验大家用主机名来区分服务器端和客户端,
服务器端为 NFS_Server ip-192.168.1.4;
客户端为 NFS_Client ip-192.168.1.5;
实例一
将/tmp 分享给大家使用,让所有的人都可以存取,让 root 写入档案还是具有 root 的权限
[NFS Server]
[root@NFS_Server ~]# ll -d /tmp/ #目录 tmp 文件系统本身具有读写权限
drwxrwxrwt. 3 root root 4096 May 3 21:39 /tmp/ [root@NFS_Server ~]# vim /etc/exports
/tmp 192.168.1.5(rw,root_squash)
[root@NFS_Server ~]# exportfs -r #重新载入配置文件 [root@NFS_Server ~]# ll /tmp
total 0
-rw-------. 1 root root 0 Apr 23 15:05 yum.log
[root@NFS_Client ~]# mkdir /share1 #创建挂载目录
[root@NFS_Client ~]# ll
/share1/
total 0
[root@NFS_Client ~]# mount -t nfs 192.168.1.4:/tmp/ /share1/ #挂载 [root@NFS_Client share1]# ll
#已同步到客户端的/share1 目录
total 0
-rw-------. 1 root root 0 Apr 23 15:05 yum.log
[root@NFS_Client share1]# whoami #查看当前用户
root
[root@NFS_Client share1]# touch a.sh
#以 root 用户创建一个测试文件
[root@NFS_Client share1]# ll #查看
a.sh 的宿主宿组都是 root
total 0
-rw-r--r--. 1 root root 0 May
3
2014 a.sh
-rw-------. 1 root root 0 Apr 23 15:05 yum.log
[NFS Server]
[root@NFS_Server tmp]# ll #查看
a.sh 是否同步,查看 a.sh 的宿主宿组是否是 root
total 0
-rw-r--r--. 1 root root 0 May
3 22:15 a.sh
-rw-------. 1 root root 0 Apr 23 15:05 yum.log
---End---
实验一总结:主要的就是共享权限 no_root_squash
要想明白 no_root_squash 就要先明白 root_squash 的意思
root_squash:如果客户端是以 root 身份进行对 nfs 分区操作,那么会被 root_squash 压缩成
nfsnobody。
no_root_squash:与 root_squash 意思相反,就是不压缩,仍然是以 root 用户进行进行操作 nfs
分区,安全性没有保证
同一目录针对不同范围开放不同的权限
我们将一个公共的目录/www/onair 公开出去,但是我们只限定我的局域网络 192.168.1.0/24 这个 网且加入 Allentunsgroup 的用户才能够读写,其它来源则只能读取
[ON Server]
[root@NFS_Server ~]# mkdir /www/onair -pv mkdir: created directory `/www'
mkdir: created directory `/www/onair'
[root@NFS_Server ~]# touch /www/onair/a.sh
[root@NFS_Server ~]# groupadd -g 500 Allentunsgroup
[root@NFS_Server ~]# useradd -g Allentunsgroup -r 500 Allentuns
[root@NFS_Server ~]# setfacl -m g:Allentunsgroup:rwx /www/onair #设置 Allentunsgroup
组对/www/onair 文件的读写执行权限
[root@NFS_Server ~]# ll
-d /www/onair/
drwxrwxr-x+ 2 root root 4096 May
4 01:45 /www/onair/
[root@NFS_Server ~]# cat /etc/group |grep Allentunsgroup #查看对应的 gid 后面会用到
Allentunsgroup:x:500:
[root@NFS_Server ~]# vim /etc/exports
/www/onair 192.168.1.0/24(rw)
*(ro)
[root@NFS_Server ~]# exportfs -r
[ON Client]
[root@NFS_Client ~]# mkdir /usr/local/onair
[root@NFS_Client ~]# showmount -e 192.168.1.4
Export list for 192.168.1.4:
/www/onair (everyone)
[root@NFS_Client ~]# mount -t nfs 192.168.1.4:/www/onair /usr/local/onair/
[root@NFS_Client ~]# cd /usr/local/onair/
total 0
-rw-r--r--. 1 root root 0 May
4 01:45 a.sh
[root@NFS_Client onair]# whoami
root
[root@NFS_Client onair]# touch b.sh #拒绝
touch: cannot touch `b.sh': Permission denied
root 用户拒绝写入
然后创建一个新账号,并加入到 Allentunsgroup 组中测试是否有写入权限
[root@NFS_Client ~]# groupadd -g 500 Allentunsgroup
[root@NFS_Client ~]# cat /etc/group |grep Allentunsgroup
Allentunsgroup:x:500:
[root@NFS_Client ~]# useradd -g Allentunsgroup scott
[root@NFS_Client ~]# id scott
uid=500(scott) gid=500(Allentunsgroup) groups=500(Allentunsgroup)
[root@NFS_Client ~]# passwd scott
Changing password for user scott.
New password:
BAD PASSWORD: it is
too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@NFS_Client onair]# su scott
[scott@NFS_Client onair]$ whoami scott
[scott@NFS_Client onair]$ ll total 0
[scott@NFS_Client onair]$ touch b.sh #写入成功
[scott@NFS_Client onair]$ ll total 0
-rw-r--r--. 1 root root 0 May
4 01:45 a.sh
-rw-r--r--. 1 nobody Allentunsgroup 0 May
4
2014 b.sh
[ON Server]
[root@NFS_Server ~]# ll
/www/onair/
total 0
-rw-r--r--. 1 root root 0
May 4 01:45 a.sh
-rw-r--r--. 1 Allentuns Allentunsgroup 0 May 4 02:11 b.sh
已经同步到 Server 端,并且同步到 server 端的用户是 Allentuns,用户组为 Allentunsgroup
setfacl 的用法
setfacl 命令可以用来细分 linux 下的文件权限。
chmod 命令可以把文件权限分为 u,g,o 三个组,
而 setfacl 可以对每一个文件或目录设置更精确的文件权限。
比较常用的用法如下:
setfacl –m u:apache:rwx file 设置 apache 用户对 file 文件的 rwx 权限
setfacl –m g:market:rwx file 设置 market 用户组对 file 文件的 rwx 权限
setfacl –x g:market file
删除 market 组对 file 文件的所有权限
getfacl file 查看 file 文件的权限
Error1
[root@NFS_Server onair]# service rpcbind stop
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
chdir: error retrieving current directory: getcwd: cannot access parent directories: No
such file or
directory
解决办法
退出当前目录,重新执行此命令
---End---
linux 深入应用 NFS的更多相关文章
- 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
RAC在LINUX上使用NFS安装前准备(六) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇 ...
- linux下使用NFS挂载文件系统
转自linux如何使用NFS挂载文件系统 设备:一台服务器和一台客户端,这里我们把装在PC机上的RedHat作为服务器,而客户端则是嵌入式linux开发板. 环境:开发板已启动,连接好串口和网线,串口 ...
- Linux 文件服务---------- nfs Server
Linux 文件服务nfs (Network file system)#网络文件系统 ---> 远程文件调用samba #文件共享(unix /linux /windows ) ,只能适用于局域 ...
- linux下面重启nfs报错:nfs-server.service:main process exited
linux下面重启nfs报错:nfs-server.service:main process exited [root@dhcp-66-83-39 images]# service rpcbind s ...
- 转载:【Oracle 集群】RAC知识图文详细教程(六)--RAC在LINUX上使用NFS安装前准备
文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...
- 【转】【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
原文地址:http://www.cnblogs.com/baiboy/p/orc6.html 阅读目录 目录 介绍 下载软件 操作系统安装 Oracle安装先决条件 创建共享磁盘 参考文献 相关文章 ...
- Linux 客户端访问 NFS报Permission Denied错误
在Linux服务器上访问NFS共享目录时,报错:Permission denied. 如下截图所示: 因为这个NFS是系统管理员配置的,我又不了解具体情况,而系统管理员休假中,联系不上.那么我只能先多 ...
- linux pxe+dhcp+nfs+tftp
yum -y install vsftpd dhcp xinetd tftp-server syslinux(安装"syslinux"才有pxelinux.0) tftp 服务(v ...
- linux服务之nfs
开发语言:rpc编程环境 服务器端:在linux平台下部署 客户端:一般是cli界面下的mount命令 相关包:rpcbind,nfs-utils 背景 http://nfs.sourceforge. ...
- linux点滴:NFS
介绍 NFS,Network File System,网络文件系统.主要功能是通过网络让不同的主机系统间共享资源,类似于windows下的文件共享.适用于互联网中小型企业. 工作原理 客户端发送请求 ...
随机推荐
- 2.Python环境搭建Window、mac、linux
1.Windows安装Python详解 使用任何高级编程语言都需要有一个自己的编程环境,Python 也不例外.只要使用 Python,就必须要配置 Python 的开发和运行环境. Python 本 ...
- (转)IIS Express介绍与使用
IIS Express是什么?IIS Express是为开发人员优化的轻量级.自包含版本的IIS.IIS Express使使用当前最新版本的IIS来开发和测试网站变得容易.它具有IIS 7及以上的所有 ...
- spring boot: Whitelabel Error Page的解决方案
http://blog.csdn.net/u014788227/article/details/53670112
- java内存分布详解
参见:http://blog.csdn.net/bluetjs/article/details/52874711 基本类型和引用类型.二者作为局部变量,都放在栈中,基本类型直接在栈中保存值,引用类型只 ...
- jquery版本轮播图(es5版本,兼容高)
优势:基于es5,兼容高.切换动画css配置,轻量,不包含多余代码,可扩展性很高,多个轮播图不会冲突,可配置独有namespace 注: 1.项目需要所写,所以只写了页码的切换,未写上一页下一页按钮, ...
- 自定义标记mark
前言 pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行.app自动化的时候,如果想android和ios公用一套代码时,也可以使用标记功能,标明哪些是i ...
- 系统分析与设计HW1
软件工程的定义 1993年,电气电子工程师学会(IEEE)给出了一个定义:"将系统化的.规范的.可度量的方法用于软件的开发.运行和维护的过程,即将工程化应用于软件开发中". 阅读经 ...
- springmvc 获取request response
RequestContextHolder 获取request public HttpServletRequest getRequest() { return ((ServletRequestAttri ...
- Spring获取request、session以及servletContext
获取request: HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestA ...
- Elasticsearch如何关掉服务
1.使用head插件找到想关掉的节点进行关停 2.使用命令kill杀掉服务器的ES进程即可1.查找ES进程ps -ef | grep elastic 2.杀掉ES进程kill -9 2382(进程号) ...