Linux通过user、group、other把用户分为基础的三类,可以对三类分别设置三种基本权限read、write、excute。

 1、基本介绍

Linux基本权限UGO_第1张图片

九位基本权限分别按照user、group、other的顺序,如上图,d表示文件是个目录文件,owner权限为rwx,group的权限为r-x,非上两种就是other用户权限为r-x。

 2、权限判定流程


 对文件操作的权限是基于process的用户表示的,比如用户yemo在没特殊情况下,他发起的进程就表示为yemo的UID,然后文件操作基于process的信息与UGO的权限列表比对,判定用户拥有的权限。

 3、更改权限

 用户9位权限可以用rwx关键字描述也可以用数字的方式描述

 

 如图,在一位上拥有权限就为1(Ture),无权限就为0,按照3个分组讲二进制转换过来就是755。

 使用chmod修改文件权限,可以使用数字或者描述的方式:

       chmod MODE file,... (eg: MODE=755)

                  -R 递归

                   --reference=/path/to/somefile file

        修改某类用户或某些类用户权限

        u,g,o,a

        chmod 用户类别=MODE file,...

        修改某类用户的某位或某些位权限:

        u,g,o,a

      chmod 用户类别+|-MODE file,...

        -x 三个用户全部取消x权限

        go= 属组和其他用户权限全部取消

       chmod 数字权限  file

Example:修改/tmp/links.sh权限为rwxr-xr--

root@yemo:/tmp# chmod u=rwx,g=rx,o=r links.sh 
root@yemo:/tmp# ls -l links.sh 
-rwxr-xr-- 1 root root 1539 Jun  2 04:32 links.sh

把权限去掉再用数字方式

root@yemo:/tmp# chmod a= links.sh 
root@yemo:/tmp# ls -l links.sh
---------- 1 root root 1539 Jun  2 04:32 links.sh
root@yemo:/tmp# chmod 755 links.sh
root@yemo:/tmp# stat -c %a links.sh 
755
root@yemo:/tmp# stat -c %A links.sh 
-rwxr-xr-x

4、umask

 用于创建用户时的默认权限,umask是去掉的部分,umask可以用数字或者描述指定。

 数字法:

 目录


U G O
777 111 111 111
umask022 000 010 010
目录权限 111 101 101

所以目录的权限就为755

 文件


U G O
666 110 110 110
umask022 000 010 010
文件的权限 110 100

100

所以文件的权限的644

 处于安全考虑,文件默认是排除可以执行权限的,所以文件值为666减去umask。


5、文件和目录各种权限的作用和意义

 目录

r 只能读取文件列表
w 没有任何作用
x

可以进入目录

rw 可以读文件列表,依旧无法删除文件
rx 读取文件列表,可以cd进mul,但是无法删除目录下的文件,对文件有w权限可以清空或者写入
wx 可以增加和删除目录中文件,可以cd进目录,但是无法查看目录有哪些内容,知道文件名可以打开文件
rwx 可以进入目录,显示目录中内容,可以增删目录中文件


 文件夹权限特表现殊源于文件系统结构中,目录文件中存放的是文件名和文件索引值



 文件

r 读取文件内容
w 写入
x 执行,单独的执行权限只能运行二进制可执行文件
rw 可读可写
rx 可以执行二进制之外的编译类或者脚本类的文件
wx 可以修改内容,无法查看,可以执行二进制可执行文件
rwx 可以查看文件内容,可以增删文件内容,可以执行可执行文件