一、特殊权限

s:suid,set uid用户在执行此程序时,其进程的属主不再是发起者本人,而是此程序的属主

s:属主原有执行权限

S:属主无执行权限

chmod u+|-s

chmod 4644


s:sgid,set gid 用户在执行此程序时,其进程的属主不再是运行者所属的基本组,而是此程序的属组

s:属组原有执行权限

S:属组无执行权限

chmod g+|-s

chmod 244


t:sticky,粘贴位,附加other的权限上

t:其它组原有执行权限

T:其它组无执行权限

chmod o+|-t

chmod 1644


ugt:

  000:0

  001:1

  010:2

  100:4

  011:3

  101:5

  110:6

  111:7


二、ACL

用户访问文件鉴权顺序:

1、用户是否为文件属主?

2、用户是否有特定的访问控制条目?

3、用户是否属于文件属组?

4、用户所属的组是否有特定的访问控制条目?

5、其它。


查看ACL:

getfacl /path/to/somewhere


设置ACL:

setfacl –m u:USERNAME:MODE /path/to/somewhere

setfacl –m g:GROUPNAME:MODE /path/to/somewhere

setfacl –R –m u:hadoop:rw /tmp/test #递归设置目录ACL

233448378.jpg

扩展属性(lsattr 查看扩展属性):

设置ACL权限后,权限位后会有一个“+”号,如果SELinux启用状态下建立文件时会是“.”号,两种情况同时存在时,只显示“+”号。


这里用户组权限位的权限,并不是组权限,而是mask值。


取消设置ACL

setfacl –x u:USERNAME /path/to/somewhere

setfacl –x g:GROUPNAME /path/to/somewhere


额外挂载的文件系统默认不支持acl,如果要支持:

方法1:

mount -o acl DEVICE MOUNT_POINT

永久有效:需要编辑/etc/fstab,在挂载选项后附加acl选项;


方法2:(设定分区的默认挂载选项中有acl,则挂载时无须再指定acl;)

tune2fs -o acl PARTITION


取消此默认挂载选项:

tune2fs -o ^acl PARTITION

[root@server1 tmp]# tune2fs -o acl /dev/sdc1

tune2fs 1.41.12 (17-May-2010)

[root@server1 tmp]#

[root@server1 tmp]# tune2fs -l /dev/sdc1|grep "Default mount options"

Default mount options: acl