标签:sda 过程 name acl权限 限时 分享 不同的 修改 恢复文件
普通权限用途在 linux下,对一个文件(或者资源)可以进行操作的对象被分为三类: file owner(文件的拥有者),group(组,注意不一定是文件拥有者所在的组), other (其他)而对于每一类别又分别定义了read, write and execute(rwx)权限。即可读权限,可写权限以及执行权限。在这里我们用一个例子来看一下普通权限的作用。
现在假设存在一个文件test.txt,该文件的owner位和group位有rwx权限,而other位无任何权限。现在有一个用户lishyang想对其拥有可读权限,那么我们可以怎么做呢?(假设用户lishuyang不是该文件的owner,也不属与该文件的所属组admin),我觉得可行的方法有三种:
chmod o+rx test.txt
groupmems -g admin -a lishuyang
chmod u+s test.txt
通过上面的用法来看,设置普通权限就必须使得一个普通用户与文件的所属人,所属组建立联系。
我们还以上述的test.txt文件举例,当我们按照上述的方式给用户lishuyang设置权限后,我们的确完成了要求,可是这中间却存在几个问题:
这个时候lishuyang就只获得了对文件test.txt的rx权限,成功避免了以上的问题。同样的我们还可以对test.txt给一个无关组设置权限,假设一个组为test组,则:
ACL权限用途详解:
tune2fs -o acl /dev/sda5
mount -o acl /dev/sda5 /app
setfacl -m u:user:rwx filename
给指定的组设置权限
setfacl -m g:group:rwx filename
(注:避免使用系统组;避免使某个用户的多个组都设置不同的acl权限)
3.设置默认权限
设置默认权限,是针对目录而言的,当我们给目录设置了默认权限之后,那么目录中的文件以及未来所要创建的文件的权限都已经被设置了acl权限,默认即继承。
给指定目录设置默认用户权限和组权限
setfacl -Rm u:user:rwx testdir/
setfacl -Rm g:group:rwx testdir/
4.查看文件的acl权限
getfacl tesdir/
5.删除acl权限
逐一删除acl权限
setfacl -x u:user testdir/
setfacl -x g:group testdir/
删除默认权限
setfacl -k testdir/
删除所有权限,清空acl结构
setfacl -b testdir/
权限的阀值,就是权限的上限,我们将其称做mask值
当mask值为rwx时,文件的任何权限的上限都是rwx,而当我们的mask值有范围时,那么就算我们的权限超过mask的值,那么我们只能拥有mask范围内的权限。比如:
上图为例,当我们的权限超过mask值时,其右侧出现#effective:,这表示虽然权限超出,但是其有效权限只有mask所包含的权限。
mask值的设置
setfacl -m m:mask: filedir/
设置的mask值不难发现,其实是放在了group位上,所以在设置mask值时,同样可以通过修改group位的权限达到修改mask值的目的
chmod g=rwx testdir/
acl扩展属性 打包工具不支持存储
以备份文件为例,当我们不小心毁坏或删除掉含有acl权限的文件,然后通过备份文件恢复原文件时,我们将不会得到文件的acl权限,这个时候需要我们手动恢复acl权限,模拟过程如下:
getfacl * >/root/acl.bak
2.利用tar备份文件
tar cvf file.out
3.模拟文件损坏
rm -rf *
4.恢复文件
tar xvf file.out
5.恢复acl
setfacl --restore /root/acl.bak
权限对于linux整体的学习是一个基础而又不可或缺的内容,不仅仅是acl权限,rwx,suid,sgid,sticky都是我们需要掌握的内容。
标签:sda 过程 name acl权限 限时 分享 不同的 修改 恢复文件
原文地址:http://blog.51cto.com/13866567/2149645