[root@docker ~]# ll -h install.log
-rw-r--r--. 1 root root 46K 9月 20 04:08 install.log
从左至右解释如下:
-:普通文件
d:目录
l:链接文件
b:设备文件(块文件)
c:设备文件(字符型文件)
rw-r--r--:所有者root,所属组root,所有者权限rw;所属组权限r;其他人权限r
.:说明这个文件是受selinux控制的
Linux 权限规则:
[root@docker luyun]# mkdir tmp
[root@docker luyun]# touch test
[root@docker luyun]# ll
总用量 4
-rw-r--r-- 1 root root 0 9月 20 12:13 test
drwxr-xr-x 2 root root 4096 9月 20 12:12 tmp
注意:缺省创建的文件权限为644,目录权限为755
[root@docker luyun]# umask
0022
注意:umask默认为0022,第一个0为特殊权限位,022代表权限为755
特殊权限位(0):
1、SetUID=4 所有者 chmod u+s 文件 4755:setgid 只对文件有效
有此权限的可执行文件被执行时,无论谁执行这文件,都有文件所有者特权。
2、SetGID=2 所属组 chmod g+s 目录 2755:setgid 只对目录有效
组的继承(被复制到这目录下的文件,其所属组都会被设为和这个目录一样)
3、sticky=1 其他人 chmod o+t 目录 1777:sticky 只对目录有效
用户可以在这个目录下创建文件,但是只能删除自己创建的文件
setfacl 用法:
1、针对文件
[root@docker tmp]# touch hosts
[root@docker tmp]# ll hosts
-rw-r--r-- 1 root root 0 9月 20 16:10 hosts
[root@docker tmp]# getfacl hosts
# file: hosts
# owner: root
# group: root
user::rw-
group::r--
other::r--
注意:此时tom用户对hosts文件只有读权限(other::r--)没有其它权限
[root@docker tmp]# setfacl -m u:tom:rw- hosts# -m:修改
[root@docker tmp]# getfacl hosts
# file: hosts
# owner: root
# group: root
user::rw-
user:tom:rw- # tom用户对hosts文件有读写权限
group::r--
mask::rw-
other::r--
[root@docker tmp]# ll -h hosts
-rw-rw-r--+ 1 root root 0 9月 20 16:10 hosts
注意:在权限后面有个 + 号,说明hosts文件有扩展权限
[root@docker tmp]# setfacl -x u:tom hosts# -x:取消
[root@docker tmp]# setfacl -m g:tom:rw- hosts
[root@docker tmp]# getfacl hosts
# file: hosts
# owner: root
# group: root
user::rw-
group::r--
group:tom:rw- # 凡是属于tom组的用户对hosts文件都有rw权限
mask::rw-
other::r--
2、针对目录
[root@docker tmp]# ll
总用量 4
drwxr-xr-x 3 root root 4096 9月 20 16:25 test
[root@docker tmp]# setfacl -m d:u:tom:rwx test/
[root@docker tmp]# cd test/
[root@docker test]# touch xx
[root@docker test]# mkdir yy
[root@docker test]# getfacl xx
[root@docker test]# ll -h
总用量 4.0K
-rw-rw-r--+ 1 root root 0 9月 20 16:28 xx
drwxrwxr-x+ 2 root root 4.0K 9月 20 16:28 yy
-d:只针对下级目录、文件生效;对当前目录无效,取消后,对已经存在的文件仍有权限