在文件系统中使用 NFSv4 ACL
nfs4协议命令

The operation formerly known as MOUNT
SECINFO (dir) LOOKUP (dir) GETFH GETATTR
NFS: Its applications and future - LISA '04
NFS Version 4 is secure
Mandatory to implement
NFSv3, was published in 1994
– Extended to 64-bit files & improved write caching – It is perhaps the most commonly used protocol for sharing files on *NIX/Linux LANs today
With occasional sidetracks…
NFS: Its applications and future - LISA '04
What is NFS?
NFS: Its applications and future - LISA '04
What is NFS?
NFS is a protocol for a distributed filesystem.
Strong security
– Public and Private key – Fine-grained access control
Improved multi-platform support Extensible
– Lays groundwork for migration/replication and global naming
NFS: Its applications and future - LISA '04
CentOS5 nfs安装与配置总结

CentOS5 nfs安装与配置总结我们知道在Linux上运行NFS会有很多不同的情况。
随着环境以及相应版本和硬件的改动,它的一些性能会有很大的差异。
那么今天我们来看一下 CentOS NFS 的一些安装和测试情况。
在 CentOS 上安装和配置 NFS 4.0。
NFS 网络文件系统协议最早是于1984年由 SUN 公司开发的,NFSv4 是最新的修订版本,2003年4月发布(RFC 3530)。
由于 NFS 是一个开放的协议和标准,所以各个系统上的实现不同,所表现出来就是稳定性和性能差异,VPSee 的经验是 NFS 在 Solaris 上最稳定、功能最丰富;在 FreeBSD 上的性能最好,但是缺少一些功能,比如FreeBSD 8.0 内核才增加了 NFS 文件锁的支持;NFS 在 Linux 上表现最一般了,所以我们至今仍有部分服务器低调地运行着古老的 Solaris 2.5 和 NFSv3,相比 NFSv3 来说 NFSv4 做了一些重大改进,比如:性能的提升、安全性的增强和ACL,更容易与防火墙集成等。
下面地操作在 CentOS 5.5 上完成。
安装CentOS NFS 服务器安装CentOS NFS 服务器所需的软件包:1.# yum install nfs-utils nfs4-acl-tools portmap配置CentOS NFS 共享和安装任何其他服务器软件一样,安装完 NFS 服务后就需要对 NFS 服务进行配置。
输出服务器端的某个目录,以便 NFS 客户端能挂载和访问到这个目录1.# vi /etc/exports2./home166.111.59.22(rw,sync,fsid=0) 166.111.59.23(rw,sync,fsid=0)166.111.59.22 和 166.111.59.23 上面的用户可以挂载 NFS 服务器(166.111.59.21)上的 /home 目录到自己文件系统里;rw 在这里表示可读可写。
Linux之facl----设置文件访问控制列表(详解)

Linux之facl----设置⽂件访问控制列表(详解)setfacl命令是⽤来在命令⾏⾥设置ACL(访问控制列表)选项-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。
如果没有缺省规则,将不提⽰。
-n,--no-mask:不要重新计算有效权限。
setfacl默认会重新计算ACL mask,除⾮mask被明确的制定。
--mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。
--restore=file:从⽂件恢复备份的acl规则(这些⽂件可由getfacl -R产⽣)。
通过这种机制可以恢复整个⽬录树的acl规则。
此参数不能和除--test以外的任何参数⼀同执⾏。
--test:测试模式,不会改变任何⽂件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有⽂件及⽬录进⾏操作。
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接⽂件,跳过符号链接⽬录。
-P,--physical:跳过所有符号链接,包括符号链接⽂件。
--version:输出setfacl的版本号并退出。
--help:输出帮助信息。
--:标识命令⾏参数结束,其后的所有参数都将被认为是⽂件名-:如果⽂件名是-,则setfacl将从标准输⼊读取⽂件名。
选项-m和-x后边跟以acl规则。
多条acl规则以逗号(,)隔开。
选项-M和-X⽤来从⽂件或标准输⼊读取acl规则。
选项--set和--set-file⽤来设置⽂件或⽬录的acl规则,先前的设定将被覆盖。
选项-m(--modify)和-M(--modify-file)选项修改⽂件或⽬录的acl规则。
选项-x(--remove)和-X(--remove-file)选项删除acl规则。
当使⽤-M,-X选项从⽂件中读取规则时,setfacl接受getfacl命令输出的格式。
文件服务器搭建

文件服务器搭建文件服务器搭建:实现安全、高效的数据共享在数字化时代,数据已经成为企业不可或缺的资产。
随着企业规模的不断扩大和数据量的激增,如何确保数据的安全、高效共享和管理成为了亟待解决的问题。
搭建文件服务器是一种有效的解决方案,能够满足企业在数据共享和管理方面的需求。
本文将详细介绍文件服务器的概念、功能、搭建步骤以及实际应用场景,帮助大家更好地了解文件服务器的重要性。
一、文件服务器的基本概念文件服务器是一种专门用于存储和共享文件的计算机,通过网络提供文件级访问。
文件服务器允许用户在不同设备之间进行文件传输和共享,提高了数据共享的效率和便利性。
此外,文件服务器还提供了文件备份和版本控制等功能,确保数据的安全性和完整性。
二、文件服务器的功能1、文件存储:文件服务器提供了集中式的文件存储空间,允许用户将文件存储在服务器上,从而减轻客户端设备的负担。
2、文件共享:文件服务器支持多种文件共享方式,包括通过局域网、互联网进行文件共享,提高了文件的可用性和访问速度。
3、文件备份:文件服务器提供了备份功能,可以定期对重要文件进行备份,确保数据的安全性和完整性。
4、版本控制:文件服务器可以记录文件的修改历史,实现版本控制,方便用户随时回溯文件的不同版本。
三、搭建文件服务器的步骤1、硬件选择:根据企业需求选择合适的服务器硬件,包括处理器、内存、存储设备等。
2、软件选择:选择适合的文件服务器软件,如NFS、SMB等协议。
3、安装服务器软件:将选定的服务器软件安装到文件服务器上。
4、配置文件共享:根据需求配置文件共享的目录和访问权限。
5、配置用户管理:设置用户账户和权限,确保不同用户只能访问其有权访问的文件。
6、安全性配置:配置防火墙、加密等措施,确保文件服务器的安全性和稳定性。
四、文件服务器的实际应用场景1、团队协作:文件服务器可以促进团队协作,方便团队成员共享和编辑同一份文档,提高工作效率。
2、教育培训:学校和培训机构可以利用文件服务器提供教学资源,方便学生和教师下载和共享课程资料。
NFS参数配置详细说明

NFS参数配置详细说明1、NFS概述NFS:Network file system,网络文件系统;由sun公司1984年推出,用来在网络中的多台计算机间实现资源共享(包括象文件或cd-rom);设计的目的是:实现在不同系统间交互使用,所以它的通信协议采用与主机和操作系统无关的技术;NFS Server可以看作是File Server,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样;NFS协议从诞生到现在有多个版本:NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010);如何查看nfs当前的版本:rpm -qi portmaprpm -qi nfs-utilsNFS服务器的安装:可以由多种安装方法:----在安装linux系统时选择安装nfs服务对应的组件;(多数linux发行版本默认安装)----安装nfs的rpm套件包(手动安装)rpm -ivh rpm包需要5个RPM包。
setup-*:共享NFS目录在/etc/exports中定义(linux默认都安装)initscripts-*:包括引导过程中装载网络目录的基本脚本(linux默认都安装)nfs-utils-*:包括基本的NFS命令与监控程序portmap-*:支持安全NFS RPC服务的连接quota-*:网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)----也可以去下载nfs的源代码包,进行编译安装;RPC(Remote Procedure call) NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。
而这些传输协议用到这个RPC功能的。
可以说NFS本身就是使用RPC的一个程序。
或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。
NFS服务器的配置与使用

第五章NFS服务器的配置与使用NFS(Network Files system)是网络文件系统,它能够在不同的Linux/UNIX系统上使用,以达到文件的共享。
本章将介绍有关网络文件系统NFS的知识。
本章目标:学习完本章你将能够¾理解NFS的作用及工作原理¾配置NFS服务器¾使用NFS1.NFS简介什么是NFS呢?它是Network File system的缩写,即网络文件系统。
NFS是由SUN公司开发,并于1984年推出的一个RPC服务系统,它使我们能够达到文件的共享,在不同的系统间使用,所以它的通信协议设计与主机及操作系统无关。
当用户想使用远程文件时只要用“mount”命令就可把远程文件系统挂接在自己的文件系统之下,使远程的文件与使用本地计算机上的文件一样。
例如在计算机A上,要把计算机B上的/usr/man挂接到A的/usr/man只需执行如下命令即可:mount B:/usr/man /usr/man用户不但可以mount(挂接)目录,而且可以挂接一个文件。
在挂接之后用户只能对文件做读取(或者写入)的操作,而不能在远程计算机上把此文件或目录移动或删除,但是如果挂接 /usr/man后,则不能再挂接 /usr/man底下的目录,否则会发生错误。
NFS就是一种促使servers(服务器)上的文件能被其他的计算机挂接而达到资源共享的网络文件系统,使用这些文件的计算机就可称为Client(客户机),一个客户机可以从服务器上挂接一个文件或者一个层次的目录。
然而,事实上任何一台计算机都可以是NFS服务器或NFS客户机,甚至同时为NFS 服务器和NFS客户机。
NFS服务器所共享出来的文件或目录都记录在/etc/exports文件中,当启动NFS 服务器时,脚本/etc/rc.d/rc会自动启动exportfs程序,搜索/etc/exports这一个文件是否存在,并且赋予正确的权限给所有共享出去的文件或目录。
nfs 挂载参数

nfs 挂载参数NFS(Network File System)是一种网络文件系统协议,可以使多个计算机之间共享文件和目录。
在使用NFS挂载文件系统时,需要指定一些参数以确保系统的正确性和效率。
挂载参数有多种,其中一些常见的参数包括:1. hard和soft:指定超时错误时的处理方式。
hard表示如果出现超时错误时,不断尝试直到成功或放弃;soft表示在出现超时错误后,接受失败并在后续尝试中重新连接。
2. intr:在挂载NFS文件系统时启用中断功能。
如果该选项未启用,则在文件传输期间按Ctrl+C会中断文件传输。
3. actimeo:此参数控制缓存的有效性时间。
默认情况下,缓存有效期为1分钟。
4. timeo:指定尝试连接时的超时时间,以十分之一秒为单位。
如果在此时间内未响应,则尝试重新连接。
默认值为7.5秒。
5. rsize和wsize:指定读取和写入数据的块大小。
通常情况下,这些值应为NFS服务器的块大小。
6. noatime:禁用在读取文件时更新访问时间戳。
7. vers:指定NFS协议的版本。
通常情况下,建议使用v4协议。
在使用NFS挂载文件系统时,需要根据具体的情况,选择合适的挂载参数以确保系统的正确性和效率。
例如,在传输大文件时,应将rsize 和wsize设为较大的值,以提高传输性能。
除了上述常见的挂载参数外,还有一些高级选项可以用来优化系统的性能和安全性,例如sec选项用于指定NFS的安全机制,tcp选项用于启用TCP协议,而udp选项则可以根据需要选择。
总之,正确地指定NFS挂载参数是确保文件共享系统正常运行的重要因素。
在选择挂载参数时,应该根据实际情况进行选择,并进行必要的测试和优化,以提高系统的性能和可靠性,确保数据的安全和可访问性。
nfs详细配置说明

网络文件系统(NFS)一、NFS简介1、NFS就是Network File System的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(File Server)。
注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。
2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。
其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC 定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。
正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。
比如:某个NFS Client发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到port number(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。
注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。
3、NFS允许系统将其目录和文件共享给网络上的其他系统。
通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。
那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。
(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在文件系统中使用 NFSv4 ACL 管理 NFSv4 ACL级别: 中级 Samyak Jain , 高级软件工程师, IBM2009 年 7 月 15 日 在不同的文件系统上使用不同的命令管理 NFSv4 ACL 可能很困难。
本文讨论并对比的命令可能你在对不同的文件系统操作时会用到。
使用 NFSv4 ACL 的文件系统NFSv4 (Network File System – Version 4) 协议引入了一种新的 ACL (访问控制列表)格式,这种格式扩展了现有的其他 ACL 格式。
NFSv4 ACL 很容易使用,还引入了更详细的文件安全属性,因此 NFSv4 ACL 更安全。
IBM® AIX®、Sun Solaris 和 Linux® 等操作系统已经在文件系统中实现了 NFSv4 ACL 。
当前,IBM AIX 5L version 5.3 和更高版本中支持 NFSv4 ACL 的文件系统是 NFSv4、JFS2 with EAv2 (Extended Journaled Filesystem with Extended Attributes format version 2) 和 General Parallel Filesystem (GPFS)。
在 Sun Solaris 中,ZFS 支持这种 ACL 模型。
在 RedHat Linux 中,NFSv4 支持 NFSv4 ACL 。
什么是 ACL ?访问控制列表 (ACL) 用来指定文件系统对象(比如文件和目录)的访问权限。
它是由许多访问控制项 (ACE) 组成的列表,每个访问控制项定义一个用户或组及其权限。
关于 ZFS ACLSun 通过 Solaris 10 操作系统补丁包引入了 ZFS 文件系统。
ZFS 支持 NFSv4 ACL 模型,并通过现有的 ls 和 chmod 命令的新选项实现了相关命令。
可以使用 chmod 和 ls 命令设置和显示 ACL;没有引入新的命令。
因此,在 ZFS 中使用 ACL 非常容易。
ZFS ACL 格式ZFS ACL 采用一种定义良好的格式。
这种格式和其中涉及的实体如下:语法 AACL_entry_type:Access_permissions/…/[:Inheritance_flags]:deny or allowACL_entry_type 包括“owner@”、“group@” 或“everyone@”。
例如:group@:write_data/append_data/execute:deny语法 BACL_entry_type:ACL_entry_ID:Access_permissions/…/[:Inheritance_flag s]:deny or allowACL_entry_type 包括“user” 或“group”。
ACL_entry_ID 包括“user_name” 或“group_name”。
例如:user:samy:list_directory/read_data/execute:allow继承标志f : FILE_INHERITd : DIRECTORY_INHERITi : INHERIT_ONLYn : NO_PROPAGATE_INHERITS : SUCCESSFUL_ACCESS_ACE_FLAGF : FAILED_ACCESS_ACE_FLAG列出 ZFS 文件和目录的 ACL可以使用带 -v 和 -V 选项的 ls 命令列出 ACL。
使用 -d 选项列出目录的ACL。
操作命令列出文件的 ACL 项ls –[v | V] <file_name>列出目录的 ACL 项ls –d[v | V] <dir_name>列出文件的 ACL 的示例ls -v file.1-rw-r--r-- 1 root root 2703 Nov 4 12:37 file.10:owner@:execute:deny1:owner@:read_data/write_data/append_data/write_xattr/write_attribut es/write_acl/write_owner:allow2:group@:write_data/append_data/execute:deny3:group@:read_data:allow4:everyone@:write_data/append_data/write_xattr/execute/write_attribu tes/write_acl/write_owner:deny5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchroniz e:allow列出目录的 ACL 的示例# ls -dv dir.1drwxr-xr-x 2 root root 2 Nov 1 14:51 dir.10:owner@::deny1:owner@:list_directory/read_data/add_file/write_data/add_subdirecto ry/append_data/write_xattr/execute/write_attributes/write_acl/write_own er:allow2:group@:add_file/write_data/add_subdirectory/append_data:deny3:group@:list_directory/read_data/execute:allow4:everyone@:add_file/write_data/add_subdirectory/append_data/write_x attr /write_attributes/write_acl/write_owner:deny5:everyone@:list_directory/read_data/read_xattr/execute/read_attribu tes /read_acl/synchronize:allow以紧凑格式列出 ACL 的示例# ls -Vd dir.1drwxr-xr-x 2 root root 2 Sep 1 05:46 downer@:--------------:------:denyowner@:rwxp---A-W-Co-:------:allowgroup@:-w-p----------:------:denygroup@:r-x-----------:------:alloweveryone@:-w-p---A-W-Co-:------:denyeveryone@:r-xp--a-R-c--s:------:allow在上面的示例中,以紧凑格式显示 ACL,也就是使用掩码显示访问权限和继承标志。
每行显示一个 ACL 项,所以很容易理解。
修改 ZFS 文件和目录的 ACL可以使用 chmod 命令设置或修改 ACL。
chmod 命令使用 ACL 声明,其中包含前面给出的 ACL 格式(语法A或B)。
操作命令按索引 ID 添加 ACL 项# chmod Aindex_ID+acl_specification filename 为用户添加 ACL 项# chmod A+acl_specification filename 按索引 ID 删除 ACL 项# chmod Aindex_ID- filename按用户删除 ACL 项# chmod A-acl_specification filename删除文件的 ACL # chmod A- filename替换索引 ID 位置上的 ACL# chmod Aindex_ID=acl_specification filename 项替换文件的 ACL # chmod A=acl_specification filename修改 ZFS ACL 的示例列出 ACL 项# ls –v a-rw-r--r-- 1 root root 0 Sep 1 04:25 a0:owner@:execute:deny1:owner@:read_data/write_data/append_data/write_xattr/write_attribut es/write_acl/write_owner:allow2:group@:write_data/append_data/execute:deny3:group@:read_data:allow4:everyone@:write_data/append_data/write_xattr/execute/write_attribu tes/write_acl/write_owner:deny5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchroniz e:allow添加 ACL 项# chmod A+user:samy:read_data:allow a# ls -v a-rw-r--r--+ 1 root root 0 Sep 1 02:01 a0:user:samy:read_data:allow1:owner@:execute:deny2:owner@:read_data/write_data/append_data/write_xattr/write_attribut es/write_acl/write_owner:allow3:group@:write_data/append_data/execute:deny4:group@:read_data:allow5:everyone@:write_data/append_data/write_xattr/execute/write_attribu tes/write_acl/write_owner:deny6:everyone@:read_data/read_xattr/read_attributes/read_acl/synchroniz e:allow# chmod A1+user:samy:execute:deny a# ls -v a-rw-r--r--+ 1 root root 0 Sep 1 02:01 a0:user:samy:read_data:allow1:user:samy:execute:deny2:owner@:execute:deny3:owner@:read_data/write_data/append_data/write_xattr/write_attributes/write_acl/write_owner:allow4:group@:write_data/append_data/execute:deny5:group@:read_data:allow6:everyone@:write_data/append_data/write_xattr/execute/write_attribu tes/write_acl/write_owner:deny7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchroniz e:allow替换 ACL 项# chmod A0=user:samy:read_data/write_data:allow a# ls -vtotal 2-rw-r--r--+ 1 root root 0 Sep 1 02:01 a0:user:samy:read_data/write_data:allow1:user:samy:execute:deny2:owner@:execute:deny3:owner@:read_data/write_data/append_data/write_xattr/write_attribut es/write_acl/write_owner:allow4:group@:write_data/append_data/execute:deny5:group@:read_data:allow6:everyone@:write_data/append_data/write_xattr/execute/write_attribu tes/write_acl/write_owner:deny7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchroniz e:allow# chmod A=user:samy:read_data/write_data/append_data:allow a# ls -v a----------+ 1 root root 0 Sep 1 02:01 a0:user:samy:read_data/write_data/append_data:allow还可以使用掩码(而不是指定完整名称)修改 ACL。