一、文件特殊权限
s: suid, set uid,属主有s权限,意味着用户在执行此程序时,其进程的属主不再是发起者本人,而是这个程序文件的属主;
s:属主原本有执行权限 S:属主原本无执行权限 chmod u+|-s /path/to/somefile 给文件属主增删执行权限 chmod 4644 /path/to/somefile s: sgid, set gid,属组有s权限,意味着执行此程序时,其进程的属组不再是运行者本人所属的基本组,而是此程序文件的属组;主要用于在特定目录创建文件时使其属组与目录属组相同 chmod g+|-s /path/to/somefile 设置目录+s再于目录下创建文件则文件属组不再是当前用户基本组,此方式创建的文件同组用户可互相删除文件需再行设定t属性t: sticky, 粘贴位,附加other的权限上,表现为t 仅owner可删除此文件但是同组用户仍可修改内容。
t: T: chmod o+|-t /path/to/somefile三位特殊权限
u:s
g:s o:tsuid,sgid,sticky
000
ugt: 001 010 100 011 101 110: 6 111chmod 6664 /tmp/a.txt
umask: 0022 首位对应特殊权限目录应用实例
/tmp/test
chmod g+s,o+t /tmp/test 即若原权限为775 chmod 3775 /tmp/test chown :mygrp /tmp/test
二、FACL: 文件访问控制列表
hadoop: /var/tmp/test.txt
hadoop, hadoop 664: 其它,只读hadoop希望能够让hive写此文件,他该如何进行?只能修改other的权限有写权限;
acl: 用于实现在原有的访问控制机制之外补充一种文件访问控制机制
用户访问文件:
1、用户是否为文件属主? 2、用户是否有特定的访问控制条目? 3、用户是否属于文件属组? 4、用户所属的组是否有特定的访问控制条目? 5、其它。getfacl /path/to/somewhere: 查看文件或目录的访问控制列表;
setfacl -m u:USERNAME:MODE /path/to/somewhere: 为USERNAME指定的用户设定对文件/path/to/somewhere具有MODE访问权限;
setfacl -m g:GROUPNAME:MODE /path/to/somewhere: 为GROUPNAME指定的组设定对文件/path/to/somewhere具有MODE访问权限;
setfacl -x u:USERNAME /patn/to/somewhere
setfacl -x g:GROUPNAME /path/to/somewhere额外挂载的文件系统默认不支持acl,如果要支持,
方法1: mount -o acl DEVICE MOUNT_POINT 永久有效:需要编辑/etc/fstab,在挂载选项(defaults)后附加acl选项;方法2:设定分区的默认挂载选项中有acl,则挂载时无须再指定acl;
tune2fs -o acl DEVICE 取消此默认挂载选项: tune2fs -o ^acl DEVICEhadoop: 文件/var/tmp/hadoop.txt, 664
拒绝hive用户对此的任何访问; setfacl -m u:hive:--- /var/tmp/hadoop.txt复制文件/var/log/messages至/data目录, 其属主为root用户,且有读写权限,属组为root组,且有读写权限;可以被任何人读取,可以被gentoo用户和magedu组读写,但centos用户没有任何访问权限;
# mkdir /data
# cp /var/log/messages /data # chmod 664 /data/mesages # setfacl -m u:gentoo:rw /data/mesages # setfacl -m g:magedu:rw /data/mesages # setfacl -m u:centos:--- /data/mesages