温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

【我的Linux,我做主!】ACL访问控制列表

发布时间:2020-06-10 22:56:44 来源:网络 阅读:209 作者:Tom王 栏目:系统运维

目录:
(一)使用ACL为用户授权
(二)设置mask权限
(三)设置默认权限(只能对目录设置)


(一)使用ACL为用户授权
(1.1)如果现在我们有一个需求,在系统中有一个文件file,我们需要设置tom对file文件的权限为“r--”,设置bob用户对file文件的权限为“rw-”,设置mary用户对file文件的权限为“---”,设置jerry用户对file文件的权限为“r-x”。此时我们使用常规的属组属主的权限设置是没有办法满足要求的,如果要求对具体的某个用户或者组来设置acl权限,大家要考虑到使用acl
(1.2)现在我们进入到/opt/目录下,然后将/etc/hosts文件拷贝到当前目录中,此时我们发现hosts文件的other用户的权限是可读(图1-1),所以我们以tom用户的身份去修改hosts文件的时候,发现无法修改成功(图1-2和图1-3)。
# cp /etc/hosts .
# getfacl hosts
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
(1.3)如果此时我们希望tom用户能够对hosts文件进行修改,则我们应该使用setfacl命令进行设置。我们设置针对hosts文件给tom用户设置rwx的权限,我们发现tom用户已经有了一个在hosts文件的acl权限(图1-4),此时我们使用tom用户便可以正常的在hosts文件中添加信息了(图1-5)。
# setfacl -m u:tom:rwx hosts---针对hosts文件给tom用户设置rwx的权限
# getfacl hosts---查询当前hosts文件的权限
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
(1.4)如果我们希望取消给tom用户设置的acl权限,则可以使用setfacl -x命令操作,此时我们发现系统中已经没有针对tom用户设置的acl权限了(如图1-6)。
# setfacl -x u:tom hosts---取消给tom用户设置的acl权限
【我的Linux,我做主!】ACL访问控制列表


(二)设置mask权限
(2.1)我们先给tom用户和jerry用户都设置acl权限(图2-1),现在我们在公司中有某个文件或者某个目录,对很多个用户都设置了acl访问控制的权限,但是现在需要对文件或目录进行维护,此时我们需求是不允许任何人再写这个文件了,等文件维护完毕后然后再开放文件权限给对应的用户使用,此时我们可以使用mask权限,相当于一层遮罩码将当前用户的权限盖住,然后进行维护操作,我们可以使用setfacl -m命令操作(图2-2),此时我们发现之前给tom用户和jerry用户设置的acl权限都被新的遮罩码“r--”盖住了,我们使用“# setfacl -m m::r-- hosts”进行遮罩码的操作后,发现此时以tom用户编辑hosts文件的时候是无法修改成功的(图2-3)。
# setfacl -m u:tom:rwx hosts---设置tom用户的acl权限
# setfacl -m u:jerry:rwx hosts---设置jerry用户的acl权限
# setfacl -m m::r-- hosts---给hosts文件设置一个mask遮罩码
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
(2.2)如果我们想将这个遮罩码去除,此时我们只需要对其中的一个用户重新设置acl权限后,便可以使得所有用户原先的acl权限都生效了。
# setfacl -m u:tom:rwx hosts---设置tom用户的acl值
# getfacl hosts---查询hosts文件的acl状态
【我的Linux,我做主!】ACL访问控制列表
(2.3)现在我们设置hosts文件的mask值为不可读、不可写、不可执行,此时我们发现虽然此时hosts文件的mask权限为“---”,但是由于hosts文件的other权限中是有可读的权限的,所以此时tom用户会以other的身份读取hosts文件,是能够正常的读取hosys文件的,只有我们将other的可读权限也去除,此时tom用户才无法读取文件。
注意:我们总结的内容为,如果mask的权限设置为“---”,则other的权限生效;如果mask的权限设置为非“---”,则mask权限生效
# setfacl -m m::--- hosts---设置hosts文件的mask值为不可读、不可写、不可执行
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
(2.4)现在我们重新设置一个tom用户和jerry用户的权限都为r-x,然后设置mask的值为rwx(图2-7),此时我们使用tom用户去尝试写入hosts文件时,发现仍然是无法写入的(图2-8)。我们的总结为,如果你给用户设置的为r-x,没有设置w这个权限,此时如果想在mask里给它设置了这个w的权限,也是仍然无法使得文件可写的权限生效的。如果我们对other的权限添加了w的权限,此时tom和jerry用户仍然是无法拥有hosts文件的可写权限的,即说明了setacl设置的权限的优先级高于other里设置的权限。
# setfacl -m u:tom:r-x hosts---设置tom用户的acl为r-x
# setfacl -m u:jerry:r-x hosts---设置jerry用户的acl为r-x
# setfacl -m m::rwx hosts---设置hosts文件的mask值为rwx
# getfacl hosts---查询hosts文件的acl状态
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
(2.5)如果现在我们想对用户组设置acl权限,例如我们设置了tom组拥有可读、可写、可执行的权限,然后我们想让没有权限的bob用户拥有tom组的权限,此时我们的做法是将bob用户加入到tom组中,然后将bob用户退出登录后再重新登录bob用户,此时bob用户便拥有了tom组的权限。
# setfacl -m g:tom:rwx file---对tom组设置acl权限


(三)设置默认权限(只能对目录设置)
(3.1)我们首先在vms002主机的/opt/目录下创建一个rh234的目录。
# mkdir rh234---创建一个rh234的目录
# getfacl rh234/---获取所创建的目录的权限
【我的Linux,我做主!】ACL访问控制列表
(3.2)然后我们设置针对rh234目录下,不管是谁在rh234目录里创建的新的文件或者目录,对tom都具有rwx权限,但是并不包括rh234本身。接着我们在rh234目录下创建一个root1的文件,此时我们发现创建的root1文件的权限继承了tom用户rwx的权限,但是由于操作系统规定创建的文件最高权限为644,所以文件的默认权限为rw-,所以在创建文件的时候,不管用什么方法,都没有办法创建出来默认含有x权限的文件。
# setfacl -m d:u:tom:rwx rh234/---设置不管是谁在rh234目录里创建的新的文件或者目录,对tom都具有rwx权限,但是并不包括rh234本身
# touch rh234/root1---在rh234目录下创建一个root1的文件
# getfacl rh234/root1---查询root1目录的acl权限
【我的Linux,我做主!】ACL访问控制列表
(3.3)接着我们尝试使用jerry用户创建文件,我们首先将jerry用户设置acl为对目录rh234有rwx权限(图3-3),然后我们创建了一个jerry1文件,此时我们创建的jerry1文件继承了tom用户的rwx权限,同时为了符合系统默认创建文件的要求,因此最终jerry1文件的权限为rw-(图3-4)
# setfacl -m u:jerry:rwx rh234/---设置jerry用户拥有对目录rh234可读、可写、可执行的权限
# getfacl rh234/---获取目录rh234的权限信息
# touch rh234/jerry1
# getfacl rh234/jerry1
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表
(3.4)我们再使用jerry用户在/opt/目录下创建一个jerry2的目录,此时我们发现创建的目录也仍然继承了默认的tom用户执行时所拥有的rwx权限。
# mkdir rh234/jerry2---创建一个目录jerry2
# getfacl rh234/jerry2
【我的Linux,我做主!】ACL访问控制列表
(3.5)此时虽然tom用户对rh234目录中新增加的文件具有权限,但是tom用户本身是无法在rh234目录中创建文件的,因为我们并没有针对rh234目录为tom用户设置acl权限。
【我的Linux,我做主!】ACL访问控制列表
(3.6)如果我们希望将针对tom用户的默认权限取消,我们可以使用“# setfacl -x d:u:tom rh234/”命令,我们发现之前创建的文件仍然具有tom用户可读、可写的权限不会收回去的(图3-7),但是如果我们新创建的文件,则不会再继承tom用户可以执行的相关权限了(图3-8)。
# setfacl -x d:u:tom rh234/---取消针对134目录下的文件继承tom用户拥有相关权限的默认设置
# getfacl rh234/jerry1---获取rh234目录中之前创建的文件的acl权限
# mkdir rh234/root2
# getfacl rh234/root2
【我的Linux,我做主!】ACL访问控制列表
【我的Linux,我做主!】ACL访问控制列表

—————— 本文至此结束,感谢阅读 ——————

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI