全部博文(80)
分类: LINUX
2011-12-04 08:54:15
系统环境:rhel6.0 x86_64
server: server3(192.168.0.3)
acl可以针对单一用户单一目录or文件进行权限设置.
#使用dumpe2fs -h /dev/sdaX 查看你的系统是有acl支持
dumpe2fs -h /dev/sda1
....
Default mount options: user_xattr acl
....
也直接在/etc/fstab加上acl选项支持
vim /etc/fstab
....
LABEL= / EXT4 defaults,acl 1 1
....
##ACL的设置技巧
getfacl: 取得某个文件/目录的ACL设置项目
setfacl: 设置某个目录/文件的ACL规定
setfacl [-bkrd] [{-m|-x} acl参数] 目标文件
options:
-m:设置后续acl参数给文件使用,不可与-x同时使用
-x: 删除后续的acl参数
-b: 删除所有的acl设置参数
-k: 删除默认的acl参数
-R: 递归设置acl,包括子目录都会被设置起来
-d: 设置默认acl参数,只对目录有效,在改目录新建的数据会引用此默认值
#利用”u:用户:权限”的方式设,若一个文件设置acl后,它的权限部分会多出一个加号(+),设置acl之后通过getfacl查看,显示的数据前面加上#的,代表这个文件的默认属性.
[root@server3 mnt]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
group::r--
other::r--
针对用户的设置方式
[root@server3 mnt]# setfacl -m u:xili:rx file
[root@server3 mnt]# ll file
-rw-r-xr--+ 1 root root 0 Nov 28 03:20 file
[root@server3 mnt]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
user:xili:r-x #新增的用户权限设置
group::r--
mask::r-x #文件默认的有效权限
other::r--
#若无用户列表则默认设置文件所有者
root@server3 mnt]# setfacl -m u::rwx file
[root@server3 mnt]# ll
total 0
-rwxr-xr--+ 1 root root 0 Nov 28 03:20 file
[root@server3 mnt]# getfacl file
# file: file
# owner: root
# group: root
user::rwx #用户栏是空的,代表文件所有者的权限
user:xili:r-x
group::r--
mask::r-x
other::r--
#针对组的设置方式
[root@server3 mnt]# setfacl -m g:nginx:rwx file
[root@server3 mnt]# ll
total 0
-rwxrwxr--+ 1 root root 0 Nov 28 03:20 file
[root@server3 mnt]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:xili:r-x
group::r--
group:nginx:rwx #新增用户组的权限设置
mask::rwx
other::r--
##有效权限(effective permission): 用户or用户组所设置的权限必须要存在于mask的权限范围之内才会生效.
#针对mask的设置方式
[root@server3 mnt]# setfacl -m m:r file
[root@server3 mnt]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:xili:r-x #effective:r-- #仅r权限有效
group::r--
group:nginx:rwx #effective:r--
mask::r--
other::r--
#默认acl权限的设置(让在acl目录下面的数据都有继承的功能)
[root@server3 mnt]# getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[root@server3 mnt]# setfacl -m d:u:xili:rw test
[root@server3 mnt]# getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:xili:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
[root@server3 mnt]# touch test/test_file
[root@server3 mnt]# ll test/test_file
-rw-rw-r--+ 1 root root 0 Nov 28 03:59 test/test_file
[root@server3 mnt]# getfacl test/test_file
# file: test/test_file
# owner: root
# group: root
user::rw-
user:xili:rw-
group::r-x #effective:r--
mask::rw-
other::r--
[root@server3 test]# mkdir test_file2
[root@server3 test]# ll -ld test_file2
drwxrwxr-x+ 2 root root 4096 Nov 28 04:05 test_file2
[root@server3 test]# getfacl test_file2
# file: test_file2
# owner: root
# group: root
user::rwx
user:xili:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:xili:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
....GOOD LUCK!