【个人Linux,我作主!】ACL访问控制列表

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


(一)使用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权限blog


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

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

相关文章
相关标签/搜索