0%

6.Controlling Access to Files with Linux File System Permissions

1. Red Hat Enterprise Linux 7

1.1. 查看文件属性

1
2
3
ls -l filename
- rw-rw-r-- 1 kiosk kiosk 0 Oct 2 17:05 file
文件类型 文件权限 文件副本个数 文件所有人 文件所有组 大小 最后一次被修改的时间 名字

1.2. 查看目录属性

1
2
3
ls -ld	directoy
d rwxr-xr-x 3 kiosk kiosk 33 Aug 27 09:47 directory
类型 权限 子目录个数 目录所有人 目录所有组 子文件属性大小 目录中内容变化 目录名字

1.3. 文件用户组的更改

1
2
3
4
chown	用户名称	文件	##更改文件所有人
chgrp 组名称 文件 ##更改文件所有组
chown -R 用户 目录 ##更改目录本身以及目录中的子文件的所有人
chgrp -R 组名 目录 ##更改目录本身以及目录中的子文件的所有组

1.4. 权限的识别

1
2
3
ls -l 中2-10字符为文件权限
rwx r-x r-x
用户权限 组成员权限 其他用户权限

权限种类

1
2
3
4
5
6
7
8
9
10
11
r
r权限针对文件,表示可以查看文件内容
r权限针对目录,表示可以ls 查看目录中存在的文件名称

w
w权限针对文件,表示可以更改文件的内容
w权限针对目录,表示是否可以删除目录中的子文件或者子目录

x
x权限对于文件,表示是否可以开启文件当中记录的程序
x权限对于目录,表示是否可以进入目录中

权限的表示

1
2
3
4
5
6
7
8
r=4
w=2
x=1
-=0
7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---
u=rw-=6 g=r--=4 o=r--=4
644=777-111-022 ##因为创建文件默认是没有执行权限的所以减去111
chmod ugo+-=rwx ##改权限

1.5. 文件的默认权限

1
2
3
umask	##显示系统预留权限值
umask为002 :普通用户
umask为022 :超级用户
1
2
3
4
[root@localhost ~]# umask
0022 <---与一般权限有关的是后三位
[student@localhost ~]$ umask
0002
1
2
3
4
vim /etc/bashrc		71行是普通用户的更改,73是超级用户的更改
vim /etc/profile 60行是普通用户的更改,62是超级用户的更改

source /etc/bashrc /etc/profile ##重读系统环境文件的配置文件,让更改生效
1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# vim /etc/bashrc
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002
72 else
73 umask 022
74 fi
[root@localhost ~]# vim /etc/profile
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002
61 else
62 umask 022
63 fi

1.6. 特殊权限

stickyid 强制位

1
2
o+t	   ##只针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
t=1
1
2
chmod o+t  directroy
chmod 1777 directory

sgid 粘制位

1
2
g+s	   ##针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
s=2
1
2
chmod g+s  file|directory
chmod 2777 file|directory

suid 冒险位

1
2
u+s	   ##针对文件,文件记录动作在执行时是已文件所有人身份执行的,与是谁发起的无关
u=4
1
2
chmod u+s  file
chmod 4777 file