linux文件扩展属性和ACL

文件扩展属性和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


你可能感兴趣的:(linux,扩展,文件,acl,属性)