RHCSA系列::配置ACL和安装NFS / Samba共享 - 第7部分
先决条件
在进一步讨论之前,请确保您有 Samba服务器和服务包括 NFS服务器(注意 ,NSF版本在 RHEL 7不再支持)。 本指南中,我们将使用一台机器 的IP 192.168.0.10,在其运行的服务器既服务和 RHEL 7盒与IP地址 192.168.0.18的客户端。在本文的后面,我们将告诉您需要在客户端上安装哪些软件包。RHEL 7中的文件系统格式
与 RHEL 7开始 ,XFS已被引入作为所有架构的默认文件系统,由于其较高的性能和可扩展性。 目前,它支持 500 TB按照由Red Hat和其主流的硬件合作伙伴进行的最新的测试的最大文件系统大小。 另外 ,XFS允许 user_xattr(扩展的用户属性)和 ACL(POSIX访问控制列表)作为默认安装选项不同于ext3和ext4的(EXT2被认为是不赞成RHEL 7),这意味着你不需要指定这些选项明确在命令行或 / etc / fstab中安装一个XFS文件系统时,(如果要禁用在后一种情况下这样的选择,你必须明确地 no_acl使用和 no_user_xattr)。 请记住,扩展用户属性可以分配给文件和目录,用于存储任意附加信息,例如文件的MIME类型,字符集或编码,而用户属性的访问权限由常规文件权限位定义。访问控制列表
由于每一个系统管理员,无论是初学者还是高手,都很好,为所有者,组,和“世界第一”的文件和目录的定期访问权限,它指明某些特权( 读 , 写和 执行 )(所有其他)熟悉。 然而,随意指 了RHCSA系列的第3部分 ,如果你需要刷新你的记忆一点点。 然而,由于标准 乌戈/ RWX集不允许配置为不同的用户不同的权限, 访问控制列表被以定义文件和目录的比那些由常规的权限中指定的更详细的访问权限引入。 事实上 ,ACL-定义的权限是由文件权限位指定的权限的超集。让我们看看所有这些翻译是如何应用在现实世界中的。 1.有两种类型的 ACL: 访问ACL,因而可以适用于任一特定的文件或目录),并 默认ACL,它只能适用于一个目录。如果其中包含的文件没有设置ACL,则它们继承其父目录的默认ACL。 2.开始,ACL可以按用户进行配置,每个组,即每一个用户不能在所有组的文件。 3. ACL是使用 setfacl的 ,不管是用 -m或 -x选项分别设定(和删除)。 例如,让我们创建一个名为组 youcl并添加用户 JOHNDOE和 davenull它:# groupadd youcl # useradd johndoe # useradd davenull # usermod -a -G youcl johndoe # usermod -a -G youcl davenull让我们验证这两个用户属于补充组 youcl:
# id johndoe # id davenull
验证用户
# mkdir /mnt/playground # touch /mnt/playground/testfile.txt # chmod 770 /mnt/playground/testfile.txt然后切换用户 JOHNDOE和 davenull,按照这个顺序,并写入文件:
echo "My name is John Doe" > /mnt/playground/testfile.txt echo "My name is Dave Null" >> /mnt/playground/testfile.txt到现在为止还挺好。现在,让我们的用户 gacanepa写入文件-和写操作将失败,这是可以预料的。 但是,如果我们确实需要用户 gacanepa(谁是不群 youcl的成员)会对 /mnt/playground/testfile.txt写权限 ?可能来到你首先想到的是添加该用户帐户组 youcl。 但是,这会给他写上的 所有文件的权限是位被设置为组写的,我们不希望出现这种情况。 我们只希望他能够写入 /mnt/playground/testfile.txt。
# touch /mnt/playground/testfile.txt # chown :youcl /mnt/playground/testfile.txt # chmod 777 /mnt/playground/testfile.txt # su johndoe $ echo "My name is John Doe" > /mnt/playground/testfile.txt $ su davenull $ echo "My name is Dave Null" >> /mnt/playground/testfile.txt $ su gacanepa $ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt
管理用户权限
# setfacl -R -m u:gacanepa:rwx /mnt/playground你会已成功添加一个 ACL允许 gacanepa写入测试文件。 然后切换到用户 gacanepa并再次尝试写入文件:
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt要查看特定文件或目录的 ACL,使用 getfacl的说明书 :
# getfacl /mnt/playground/testfile.txt
检查文件的ACL
# setfacl -m d:o:r /mnt/playground上面的ACL将允许用户不是所有者组具有读取访问 到/ mnt /操场目录的未来内容。 注意 getfacl的说明书的/ mnt /操场输出的差异前,后的变化:
在Linux中设置默认ACL