一、权限概述

1、权限设置目的

文件权限设置目的:是想让某个用户(Linux操作系统中的用户)有权利操作文件

2、文件权限分类

  • 普通权限

    用户正常情况下去操作文件所具有的权限

  • 高级权限

    用户对某个文件操作有特殊需求,而普通权限不能满足,需要给文件设置高级权限

  • 默认权限

    用户在系统中创建一个文件,该文件默认都会有一个权限,该权限是默认有的

注意:权限是设置在文件上的,而不是用户;设置权限目的是让相应的人(用户)去操作相应的文件

二、普通权限

1、rwx含义

1.读权限—r(read)

  • 针对目录

    一个目录拥有r权限,说明可以查看目录里的内容(ls命令列出)

  • 针对普通文件

    一个普通文件拥有r权限,说明可以查看该文件的内容(cat/head/tail/les/more等命令查看)

  • 读权限r(read)用数字表示是4

2、写权限—w(write)

  • 针对目录

    一个目录拥有w权限,说明可以在该目录里创建、删除、重命名等操作(mkdir/touch/mv/rm等)

  • 针对普通文件

    一个普通文件拥有w权限,说明可以修改该文件的内容(vi/vim编辑器编辑文件)

  • 写权限w(write)用数字表示是2

3、执行权限—x(execute)

  • 针对目录

    一个目录拥有x权限,说明可以进入或切换到该目录里(cd命令)

  • 针对普通文件

    一个普通文件拥有x权限,说明可以执行该文件(一般程序文件、脚本文件、命令都需要执行权限)

  • 执行权限x(execute)用数字表示是1

4、没有权限—横杠-

  • 没有任何权限用横杠-表示,数字表示是0

2、UGO含义

1.UGO指什么

UGO,指的是用户身份,每个字母代表不同的用户身份。

  • U(the user who owns it)

    文件的拥有者(owner)或者创建者

  • G(other users in the fifile’s group)

    在文件的所属组(默认是创建文件的用户的主组)里的用户

  • O(other users not in the fifile’s group)

    既不是文件的创建者,也不在文件属组里的用户,称为其他人

注意:

除了上面ugo以外,还有一个字母a(all users),表示所有用户,包含ugo

2.如何判断不同身份的用户对文件的权限

查看文件详细信息,包含权限信息: 
[root@localhost ~]# ls -l 
total 144 -rw-r--r--. 1 root root 9 Mar 2 20:38 1.sh 
-rw-------. 1 root root 1651 Feb 28 11:00 anaconda-ks.cfg 
drwxr-xr-x. 2 root root 4096 Mar 6 18:34 Desktop 
drwxr-xr-x. 2 root root 4096 Feb 28 14:12 dir1

例如drwxr-xr-x:第一位是文件类型,后面三位rwx是文件拥有者权限(U),再后面三位r-x是文件所属组用户权限(G),最后面三位r-x是其他用户权限(O)

3、修改文件普通权限(chmod)

1.chmod命令用法

chmod [选项] 模式 文件名 
常见选项: 
-R, --recursive 递归更改目录和目录里文件的权限

2.代码实例

1)通过字母更改文件权限
u:表示文件拥有者 
g:表示文件属组里的用户 
o:表示其他人,即不是文件的创建者,也不在文件属组里 
a:表示所有人


例如:
修改文件权限
[root@local tmp]# chmod u+x,g+w,o-r test1
或
[root@local tmp]# chmod u=rw,g=rx,o+r test3

修改目录的权限:
1.只修改目录本身的权限 
[root@local tmp]# chmod g+w dir1/
2.修改目录以及目录里所有文件的权限(递归修改),使用-R参数 [root@local tmp]# chmod -R o+w dir1/
2)通过数字形式更改文件权限
字母和数字对应关系:
r——4
w——2 
x——1 
-——0 

rw- r-x r-- 用数字表示就是654       每三位相加,例rw-就是4+2+0=6   r-x就是4+0+1=5    r--就是4+0+0=4
rwx rw- --- 用数字表示就是760 
755 用字母表示就是rwx r-x r-x 
644 用字母表示就是rw- r-- r--


使用数字形式修改文件权限
# chmod 644 file1   即rw-r--r-- 
# chmod 700 file2 
# chmod -R 755 dir1

Q.E.D.


Read The Fucking Source Code!