什么是权限
我们可以把它理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围,或者说权限是指某个特定的用户具有特定的系统资源使用权力。
为什么要使用权限
因为系统中不可能只存在一个root用户,一定会存在多个用户,为了保护每个登录用户的隐私和工作环境,所以就有了权限
权限与用户之间的关系
在linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。

用户对文件资源,有三种角色ugo,当一个用户访问文件流程如下
1) 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
2) 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
3) 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问
设定权限

方式一:ugo user group other all=ugo (不常用)
[root@oldboy ~]# touch file # 创建文件
[root@oldboy ~]# chmod a=rwx file # 给所有人添加读写执行权限
[root@oldboy ~]# chmod a=-rwx file # 取消所有的权限
[root@oldboy ~]# chmod u=rwx,g=rw,o=- file # 属主读写执行,属组读写执行,其他人无权限
[root@oldboy ~]# chmod ug=rwx,o=r file # 属主属组读写执行,其他人读权限
[root@oldboy ~]# ll file
-rwxrwxr--. 1 root root 0 Aug 7 15:06 file
方式二:number r=4 w=2 r=1 -=0
针对文件最高设定为 777 ,但是一般都是666
1.设定属主(读写)属组(读)权限,其他人(无)
[root@oldboy opt]# chmod 640 file.txt
[root@oldboy opt]# ll file.txt
-rw-r-----. 1 root root 4 Aug 7 11:52 file.txt
2.设定属主(读写)属组(无)权限,其他人(无)
[root@oldboy opt]# chmod 600 file.txt
[root@oldboy opt]# ll file.txt
-rw-------. 1 root root 4 Aug 7 11:52 file.txt
#针对目录设定权限:777
选项:-R递归修改
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/ # 修改目录允许所有人的访问
[root@oldboy ~]# chmod -R 755 dir/ # 修改目录及子目录权限
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 2 root root 6 Aug 7 15:27 dir/
权限验证
针对文件的权限
r:能读取文件内容
w:能写入文件(不能看)
x:能执行文件(如果没有r权限,单有x没有用)
rw:能查看文件,能编辑文件,不能执行,不能删除,不能移动,不能复制
rx:能查看文件,不能编辑,能执行,不能删除,不能移动,不能复制
rwx:能查看文件,能编辑文件,能执行,不能删除\移动\复制-->使用较少
针对目录的权限
r:具有浏览目录的权限,无法进入目录,使用ls查看目录下的文件会报错,但会显示文件名称,如果使用ls -l只能看到文件名称,其他的全部无法查看
w:什么权限也没有
x:能进入目录,其他什么也没有
rx:能进入目录,能查看目录下的文件,至于操作文件,需要看文件本身的权限
rwx:如果目录赋予了w权限,则该目录下的文件可以复制\删除\移动\修改\
文件使用最对:rw=6 rx=5 644
目录使用最多:rx=5 755
属主和属组变更
chown 更改属主以及属组
-R:递归修改
[root@oldboy ~]# mkdir dir/test1 && touch dir/file
[root@oldboy ~]# ll -d dir
drwxr-xr-x. 3 root root 31 Aug 7 16:13 dir
[root@oldboy ~]# chown bin dir/
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 3 bin root 31 Aug 7 16:13 dir/
[root@oldboy ~]# chown .xc dir/
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 3 bin xc 31 Aug 7 16:13 dir/
[root@oldboy ~]# chown -R root.root dir/
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 3 root root 31 Aug 7 16:13
PS:在linux中变更一个文件或者一个资源的属主和属组,可以使用chown、chgrp命令实现
chown能设置属主和属组,chgrp仅能设置属组。(通常使用chown)