Linux ACLs

在linux下如果你希望对文件的访问权限进行更加灵活的控制,使用访问控制列表(ACLs)将是一个很好的方法。ACLs允许你将访问权限的控制精确到单个的组合用户。

使用ACL将涉及的命令有:tune2fs, getfacl, setfacl。

首先要确定系统是否支持acl功能。利用下面的命令进行查看:

[root@localhost stuff]# tune2fs -l /dev/sda3tune2fs 1.39 (29-May-2006)Filesystem volume name: <none>Last mounted on: <not available>Filesystem UUID: eab86a9f-a907-4391-8ff3-6d0865208834Filesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_fileDefault mount options: (none)Filesystem state: not cleanErrors behavior: ContinueFilesystem OS type: LinuxInode count: 123648Block count: 246999Reserved block count: 12349Free blocks: 242803Free inodes: 123636First block: 0Block size: 4096Fragment size: 4096Reserved GDT blocks: 60Blocks per group: 32768Fragments per group: 32768Inodes per group: 15456Inode blocks per group: 483Filesystem created: Sat Nov 20 22:01:28 2010Last mount time: Sat Nov 20 22:09:46 2010Last write time: Sat Nov 20 22:38:10 2010Mount count: 2Maximum mount count: 35Last checked: Sat Nov 20 22:01:28 2010Check interval: 15552000 (6 months)Next check after: Thu May 19 22:01:28 2011Reserved blocks uid: 0 (user root)Reserved blocks gid: 0 (group root)First inode: 11Inode size: 128Default directory hash: teaDirectory Hash Seed: 7202abb9-1ed2-4d55-b376-73bf9908dc30 上面的命令是查看我的第一块硬盘第三个分区在挂载的时候是否会带上acl选项,黑体部分表示什么都没有。这是我们使用下面的命令加上该选项:

tune2fs -o acl /dev/sda3#执行完用上面的方法在看时,选项会有acl。

挂载该分区进行使用:

mount /dev/sda3 data

新建文件a.txt

touch a.txt

这是默认的访问属性是:-rw-r–r– 1 root root 。即owner具有rw权限,所属组和其他具有r权限。

查看a.txt的acl权限:

[root@localhost data1]# getfacl a.txt# file: a.txt# owner: root# group: rootuser::rw-group::r–other::r–

上面是还没有加任何权限控制的acl权限,下面使用setfacl的-m(modify)参数修改acl,使user1用户有rwx的权限:

[root@localhost data1]# setfacl -m u:user1:rwx a.txt[root@localhost data1]# getfacl a.txt# file: a.txt# owner: root# group: rootuser::rw-#owner的权限user:user1:rwx#单独给的user1的权限group::r–#所属组的权限mask::rwx#对该文件的最大权限other::r–#其它的权限

设置组gp1有rx权限:

[root@localhost data1]# setfacl -m g:gp1:rx a.txt

[root@localhost data1]# getfacl a.txt# file: a.txt# owner: root# group: rootuser::rw-user:user1:rwxgroup::r–group:gp1:r-xmask::rwxother::r– 去掉文件中对user1的权限设置:

[root@localhost data1]# setfacl -x u:user1 a.txt 设置文件夹得默认ACL许可:

[root@localhost data1]# setfacl -m d:g:gp1:rw dir这条命令的效果就是:当gp

每个人在他的人生发轫之初,总有一段时光,

Linux ACLs

相关文章:

你感兴趣的文章:

标签云: