红联Linux门户
Linux帮助

Linux ACL应用学习

发布时间:2014-11-27 11:20:20来源:linux网站作者:yeelone

教到Linux 的acl ,只是大致地讲了一下,结合我自己之前的认识,在这里记录一下。

(当初我之所以知道 Linux也有acl这工具,是因为我在学习cisco路由时,学到ACL访问控制列表的内容,突发其想,想着Linux有没有访问控制之类 的东西?就上网搜了一下,结果真搜到了,当时真兴奋。哈哈。这是题外话)

首先先模拟一下环境,先创建一个文件系统。

dd if=/dev/zero of=/opt/test count=512

割一块大小512字节大小的文件出来 。

然后,将它与循环设备/dev/loop0连接在一起。

losetup /dev/loop0 /opt/test
    
losetup将循环设备与文件连接在一起,针文件模拟 成整个文件系统,让用户 得以将其视为硬盘驱动器,光驱或软驱,并挂入当前指定目录来使用。
好处是,即使这个文件系统崩溃,也不会影响到我们整个系统的正常动作。
也可以设备一个密码:
losetup -e 1234 /dev/loop0

mke2fs /dev/loop0
mount -o rw,acl /dev/loop0 /mnt

这样子,环境就做好了,以后的实验操作都在这个文件系统上做。

设置ACL的命令是这样的:

setfacl -m u:用户:rwx file

这样子,对于由root创建的文件,用户test1也有了可读可写的权限了。

配置起来比较简单,但是其中有一个重点,就是那个mask,这个是做什么用的?其实就是umask 的作用

umask:限定用户所能得到的最大权限。

默认情况下,这个umask的值随着你的setfacl所配置的值一起改变,以使你的配置能达到你的意想之中。

没有setfacl之前是mask::rw-,配置了setfacl之后 ,变成了rwx。

不过这个值必须确定你想要什么,如果这个时候你再:

setfacl -m u:test2:rwx file

那么,这个mask又会变成rwx了

那么,上面那个#effective:r--是什么意思?

这个是说,对于用户test1,它对file文件的真实权限是r--,虽然我们设置 的是rwx,但是因为mask的关系,我们所能得到的最大权限 是r--。所以实际上,就只有r权限。

ACL 的大致功能应该差不多了。