文件扩展属性和ACL:
某些文件想让其他用户有权限,而chmod和chown都只有root才有权限使用,就得需要使用文件的扩展属性来实现。
acl:access control list
#lsattr 查看文件扩展属性。能看到有显示的属性,但是具体内容都是隐藏的。
#getfacl FILE 查看相关的文件扩展信息。
#setfacl [OPTION] ID:OPEREAND FILE
-m 设置权限
u:UID:PERM 用户的权限
g:GID:PERM 组的权限
m::PREM 有效权限位。使用以后只有设定位置的权限有效,其他权限最多能和有效权限一致,可以少于有效权限。
o::PREM other的权限。
-x 撤销权限
u:UID 撤销用户
g:GID 撤销组
-b 移除所有的acl表
-k 删除默认设定的acl表,只有目录才有默认acl表,让目录中的文件自动继承的。
u:UID:PERM 用户的权限
g:GID:PERM 组的权限
默认的acl表要在ID前加D:
d:u:UID:PERM
d:g:GID:PERM
例如:
gentoo用户建立了一个名为gentoo.c的文件。现在要给centos用户相关权限。devgrp是一个组名称。gentoo是个目录。
#setfacl -m u:centos:rw gentoo.c
#setfacl -m g:devgrp:rw- gentoo.c
#mkdir gentoo
#setfacf -m d:u:centos:r-- gentoo
#setfacl u:centos:rwx gentoo.c 设置rwx权限
#setfacl -m m::r-- gentoo.c 设置有效权限位
#getfacl gentoo.c
mask::r-- 有效权限位为r--
user:centos:rwx #effcetive:r-- centos用户权限显示rwx,但是有效权限位只有r--。所以centos用户最终只有r--的权限。
默认情况下新建的分区挂载是不支持facl的,想要使用facl可以在mount的时候指定使用acl。
例如:
#mount -o acl /dev/sda5 /data
想要开机自动挂载并且使用faacl可以修改/etc/fstab,在其中的选项上添加,acl
即可。
例如:
#vim /etc/fstab
/dev/sda5 /date ext3 default,acl 0 0
或者使用tune2fs -o选项来修改分区信息。多个选项使用,隔开,使用^可以取消设定。
例如:
#tune2fs -o acl /dev/sda5
#tune2fs -o user_xattr /dev/sda5
#tune2fs -o user_xattr,acl /dev/sda5
#tune2fs -o ^user_xattr /dev/sda5