首页 体育世界正文

民兵葛二蛋,Linux ACL 权限,洪崖洞

(点击上方大众号,可快速重视)


来历:spa琪亚娜温泉rkdev

www.cnblogs.com/sparkdev/p/5536868.html


ACL 是什么


ACL的全称是 Access Control List (拜访操控列表) ,一个针对文件/目录的拜访操控列表。它在UGO权限办理的基础上为文件体系供给一个额定的、更灵敏的权限办理机制。它被规划为UNIX文件权限办理的黄星澄一个弥补。ACL答应你给任何的用户或用户组设置任何文件/目录的拜访权限。


本文的演示环境为 ubuntu 16.04。


ACL有什么用


既然是作为UGO权限办理的弥补,ACL天然要有UGO办不到或许很难办到的本事,例如:


  1. 能够针对用户来设置权限

  2. 能够针对用户组来设置权限

  3. 子文件/目录承继父目录的权限


检查是否支撑ACL


ACL需求Linux内核和文件体系的合作才干作业,当时咱们能见到的大多数Linux发行版别默许都是支撑的。但最好仍是能够先检查一下:


sudo tune2fs -l /dev/sda1 |grep "Default mount options:"

Default mount options:                 user_xattr    acl


咱们能够看到默许情况下(Default mount options:)现已参加 acl 支撑了。


怎么设置ACL


咱们能够运用setfacl和getfacl指令来设置或调查文件/目录的acl权限。


setfacl


参数不多,直接列出来了:



getfacl


getfacl 文件/目录名


下面咱们经过一些示例来演示 ACL 权限的根本用法。


针对用户来设置权限


笔者体系中的当时用户民兵葛二蛋,Linux ACL 权限,洪崖洞是 nick,再创立两个用户 tester 和 tester1 用来进行测验:


$ sudo adduser tester

$ sudo adduser te天将女子ster1


创立文件 aclfile,检查其默许的权限信息胡素斐:



把用户切换为 tester,发现没有写文件的权限:



这是由于 other 没有写 aclfile 文件的权限。


下面咱们周绍宁为 tester 用户赋予读写 aclfile 文件的权限:


$ setfacl -m u:tester:rw aclfile


修正成功后再次以 tester 用户的身份向 aclfile 文件写入数据,这次现已能够正常写入了。检查 aclfile 文件的权限:


$ ll aclfile



形似并没有发作什么改变,仅仅在描绘权限的当地多出了一个 “+” 号。下面再看看 沙罗双树的誓词acl 权限:


$ getfacl aclfile



多出了一些信息,其间比较重要的是 user:tester民兵葛二蛋,Linux ACL 权限,洪崖洞:rw-,便是它让用户 tester 具有了读写 aclfile 的权限。


针对用户组来设置权限


和针对用户的设置简直相同,仅仅把民兵葛二蛋,Linux ACL 权限,洪崖洞小写的 u 换成小写的 g 就行了。


子文件/目录承继父目录的权限


这是一个很棒的比如,它能让咱们创立的子文件或许子文件夹承继父文件夹的权限民兵葛二蛋,Linux ACL 权限,洪崖洞设置!


$ mkdir mydir

$ ll -d mydir

$ setfacl -m d:u:tester:rwx mydir

$ getfacl mydir


留意参数 d 在这儿起到了决定性的效果。下面是设置后的 mydir 目录的权限特点:



这次多出了一些以 default 最初的行,这些 default 权限信息只能在目录上设置,然后会被目录中创立的文件和目录承继。下面分别在 mydir 目录下创立文件 testfile 和目录 testdir,并检查它们的 acl 权限:


$ touch testfile

$ mkdir testdir

$ getfacl testfile

$ getfacl testdir



从上图能够看到文件 testfile 承继了父目录的 acl 权限,因而用户 test漂流瓶文爱er 对它有读写权限。下面再看看 testdir 目录黄子韬被告上法庭:



从图中能够看出,testdir 目录不只承继了 tester 的拜访权限,还承继了父目录上的 default 权限。也便是说咱们经过这种方法设置在目录上的权限能够被子目录递归的承继下去。


更改 ACL 权限


-m民兵葛二蛋,Linux ACL 权限,洪崖洞 选项其实是在更改文件和目录的 ACL 权限


  • 当一个用唐传奇之列户或组的 ACL 权限不存在时,-m 选项履行的是增加操作,

  • 假如一个用户或组的 ACL 权限现已存在时,-m 选项履行的是更新操作。


咱们从头创立一个 aclfile 文件,经过下面的指令设置 tester 用户对它的拜访权限:


$ setfacl -m u:tester:rwx aclfile



这时 王木犊-m 选项是在增加 ACL 权限。然后咱们修正 tester 用户的权限,移除其对 aclfile 的履行权限:


$ setfacl -m u:tester:rw aclfile



这时 -m 选项是在更改现有的 ACL 权限。接下来再让咱们试一下为不同的用户或组设置 ACL 权限:


$ setfacl -m g:tester1:rwx aclfile



这次是新增加了 group tester1 的权限,而且没有影响 test潘晓婷的老公er 用户的权限。


–set 选项pdogg会先铲除去原有的 ACL 权限,然后增加新的权限


咱们接着设置塔卡沙是哪国的牌子 aclfile 文件的 ACL 权限:


$ setfacl --set u::rw,u:tester2:rwx,g::r,o::- aclfile



需求留意的是一定要包括 UGO 权限的设置,不能象 -m 相同只包括 ACL 权限。o::- 是另一个需求留意的当地,其完好的写法是 other::-,就像 u::rw 的完好写法是 user::rw- 相同。一般咱们能够把 “-” 省掉,可是当权限位只包括 “-” 时,就至少要保存一个。假如写成了o::,就会报错。


删去 ACL 权限


有增加就有删去,咱们能够经过 setfacl 指令的 -x 选项来删去指定用户或组的 ACL 权限,还能够经过 -b 选项来肖艺能铲除文件和目录上一切的 ACL 权限。


咱们创立一个新的测验文件 aclfile,并设置下面的 ACL 权限:


$ setfacl -m u:tester:rwx,u:tester1:rw,g:tester2:rwx aclfile


下面经过 -x 选项删去 group tester2 的 ACL 权限(留意指令中只指定了组的称号而没有指定权限信息):


$ setfacl -x g:tester2 aclfile


检查一下成果,发现下图中现已没有 group:tester2 的权限信息了:



下面经过 -b 选项一次性删去 aclfile 上一切的 ACL 权限:


$ setfacl -b aclfile



-b 选项直接铲除了文件上的一切 ACL 权限。这个行为关于目录来说也是相同的,这儿就不再演示了。


备份和康复 ACL 权限


常见的文件操作指令 cp 和 mv 等都支撑 ACL 权限,仅仅 cp 指令需求加上 -p 参数。可是 tar 等常见的备份东西不会保存目录和文件的 ACL 权限信息。假如希360sandbox望备份和康复带有 ACL 权限的文件和目录,能够先把 ACL 权限信息备份到一个文件里,然陈伯达最终口述回想后再用 -restore 选项来康复这些信息。下面演示 ACL 权限的保存和康复。咱们先创立下面的目录结构:



并分别为 中华鲶acl重庆最牛胸肌哥di民兵葛二蛋,Linux ACL 权限,洪崖洞r 目邱家儒录和 aclfile 文件设置 ACL 权限:



然后运用下面的指令导出 acldir 目录的 ACL 权限信息并保存到文件 acldir.acl 文件中:


$ getfacl -R acldir > acldir民兵葛二蛋,Linux ACL 权限,洪崖洞.acl


接下来删去去 acldir 目录的 ACL 权限:


$ setfacl -R -b acldir



现在 acldir 目录及其子文件上的 ACL 权限都被删去去了。最终咱们再经过下面的指令把它们的 ACL 权限都康复回来:


$ setfacl --restore acldir.acl



之前删去的 ACL 权限全都康复回来了!



【关于投稿】


假如我们有原创好文投稿,请直接给公号发送留言。


① 留言格局:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/

③ 最终请附上您的个人简介哈~



看完本文有收成?请共享给更多人

重视「Linux 爱好者」,提高Linux技术

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。