Linux知识回顾之一

1.你想自定义文件访问权限怎么办?

    之前说的都是在用户及系统文件的管理问题,都是针对三类人而设计的,所有者,所有组,其他人。那有没有真正考虑过,有某些文件就是针对某一些人群而定制的。例如,电脑的片子要指定的人才能看哦,不然会出大问题的;那该如何是好,这时acl就派上了用场。

    acl的功能可以指定特定的文件给不属于此文件的三类人的,特定的用户所使用,更加扩展了文件权限的可用性。

先来两个例子练下手:
    环境设置:新建一个file1文件把所有权限都删除,如下:现在除了root用户,其他所有的用户都无法访问;

[suyingjie@localhost data]$ cat file1 
cat: file1: Permission denied

我单单给suyingjie这个用户有访问的权限;

[root@localhost data]# setfacl -m u:suyingjie:rwx file1 

查询下file1的权限;

[root@localhost data]# getfacl file1
# file: file1
# owner: root
# group: root
user::---
user:suyingjie:rwx
group::---
mask::rwx
other::---

这时用suyingjie用户查看下file1,已经可以成功访问了。

[suyingjie@localhost data]$ cat file1
rootline1

哎,来查询下file1的权限哈:

[suyingjie@localhost data]$ ll file1 
----rwx---+ 1 root root 10 Oct 13 05:12 file1

    仔细的同学应该发现了有点这个权限有问题吧,为什么原来看属组的位置有rwx,然后多了一个+号呢;其实是这样子的,这里的属组位是称为mask,是所有acl权限的最高限值。也是所有acl权限的相加的结果的,后面的+号就是设置acl需有的标识;

参数说明下:
    -m :新建acl记录;u:针对用户新建acl;g:针对组来创建;d:设置默认权限;-R用来对目录用权限递归;-x 删除acl权限;-b 删除全部指定文件的全部acl;
下面的例子说明下;

[root@localhost dir]# setfacl -x u:suyingjie test
#删除了针对suyingjie这个用户的acl;
[root@localhost dir]# setfacl -x g:suyingjie test 
#删除了针对suyingjie这个组的acl;
[root@localhost dir]# setfacl -b  test 
#删除了设置在test文件的全部acl;

    getfacl + 文件名:是查看所设置的acl;
我们来看一个某浪的面试题吧:

    在/testdir/dir里创建的新文件自动属于webs组,组apps的成员如:tomcat能对这些新文件有读写权限,组dbs的成员如: mysql只能对新文件有读权限,其它用户(不属于webs,apps,dbs)不能访问这个文件夹;

1、首先/test/dir目录的属组应该是webs组,并有设置sgid权限;
2、应创建/test/dir目录对于组apps有递归的默认读写权限;
3、应创建/test/dir目录对于组dbs有递归的默认读权限;
3、其他的用户不能访问此文件夹;
用户和组我提前先创建好先;
第一步:新建对目录的sgid权限

[root@localhost data]# ll -d dir
drwxr-sr-x. 2 root webs 6 Oct 13 05:58 dir

第二步:下面的第一段指是apps组成员对dir下设置所有新增的文件都有读和写权限;为什么要两条,因为第一条命令只是对dir目录生成的新文件生效,对目录本身不起作用,所有还需要新建对目录起作用的。

[root@localhost data]# setfacl -Rm d:g:apps:rw dir/
[root@localhost data]# setfacl -Rm g:apps:rw dir/

第三步:同上

[root@localhost data]# setfacl -Rm g:dbs:r dir/
[root@localhost data]# setfacl -Rm d:g:dbs:r dir/

第四步:设置所有者没有权限

[root@localhost data]# setfacl -Rm o::0 dir/

最后我们来看下dir这个目录最终的acl权限吧:

[root@localhost data]# getfacl dir/
# file: dir/
# owner: root
# group: webs
# flags: -s-
user::rwx
group::r-x
group:dbs:r--
group:apps:rw-
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:dbs:r--
default:group:apps:rw-
default:mask::rwx
default:other::r-x

上面很清楚可以看下,用户,用户组的acl;
这时你应该大概了解了这个acl的作用吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值