Linux权限

什么是权限?

权限即一个用户针对某个文件或文件夹的权限。

image

权限分类

权限可分为3类,r(只读)w(可写)x(可执行),如果显示 - 表示无对应权限。

[root@localhost ~]# ll /  # 查看文件权限信息

首列显示的即此文件或文件夹的权限,

image

权限位

根据上面的观察,这里我们引入权限位的概念,以根目录下/etc目录为例:
drwxr-xr-x其中d代表的是文件类型,剩下的便是rwxr-xr-x,我们分成三个部分rwx,r-x,r-x。其中第一部分代表所属用户权限,即所属用户对此文件的操作权限是可读可写可执行;第二部分代表所属用户组权限,即用户组对此文件操作权限是可读可执行;第三部分代表其他用户对此文件的权限,即可读可执行。

理解图如下,

image

权限数字编号

每个权限都拥有一个数字,

  • r(可读)     4
  • w(可写)     2
  • x(可执行)    1
  • -(无对应权限) 0

因此权限也可以使用数字代表,换算规则即每部分权限数值相加即可,如rwxr-xr-x等价于 755。

权限命令

权限命令格式:chmod [参数] [权限表达式] [操作对象]

image

  • -R : 递归增加权限
    此例子中我们递归创建文件夹a、b,并在/tmp/a/b/目录下创建文件1.txt,各个文件权限并不相同

    image

    image

权限表达式不只数字一种形式。我们可以通过chmod [参数] [(u|g|o) (+|-) (r|w|x)] [操作对象]格式增加删除权限,而且之前的方式可能会给操作对象改错权限,倘若我们只想将操作对象中的其他人权限中的可写权限删除,那么如下:

image

PS: u代表属主, g代表属组, o代表其他人,+是添加权限, -是删除权限。

权限对于用户的意义

/tmp/a/b/test.txt文件对于其他人是无任何权限的,登录的lin用户查看文件显示无权限。

image

image

修改test.txt文件属主和属组的权限,再通过root用户访问,

image

发现仍然能够使用,那么权限对于root用户来说是不屑一顾的(起不到作用)。

总结

  1. 普通用户是严格遵守权限的
  2. root用户是高于权限的

权限对于目录的意义

我们在/tmp目录下创建/a/b目录,在/b目录下创建文件test.txt,并修改/a和/a/b目录权限为000(无任何权限),test.txt权限为444(可读)。

image

我们通过lin用户查看test.txt文件时显示无权访问,
image

给/a和/a/b目录设置444(可读)权限,仍然是无法访问;继续给/a和/a/b目录设置222(可写)权限,仍然是无法访问;继续给/a和/a/b目录设置666(可读可写)权限,仍然是无法访问;继续给/a和/a/b目录设置111(可执行)权限,此时可以访问test.txt文件。

image

image

那么,目录下的文件可读,目录的最低要求必须有可执行权限。

对于目录下的可写文件,和可读文件相同,所以这里不再附图而直接下结论。
目录下的文件可写,目录的最低要求必须有可执行权限。

限于篇幅,这里直接说,目录下的文件可执行,目录及其文件的最低要求必须有可读可执行权限

image

image

image

结论

  1. 目录下的文件可读,目录的最低要求必须有可执行权限
  2. 目录下的文件可写,目录的最低要求必须有可执行权限
  3. 目录下的文件可执行,目录及其文件的最低要求必须有可读可执行权限

文件的默认权限

我们执行命令创建文件夹及文件时默认便有权限,那么这些权限是谁帮我们处理了?
在linux中,常用文件权限是666,目录权限是777。创建目录及文件即与umask值计算得到默认权限。

  1. 文件的权限是跟 umask 值相减,遇到奇数加一;遇到偶数则不变。
  2. 文件夹的权限只要跟 umask 值相减即可。

那么 umask 值又是从何而来呢?我们cat /etc/profile,
image

从上图环境变量配置文件中可以解读到,如果用户ID大于199并且当前登录用户的用户组ID等于当前登录用户ID,那么umask值是002,否则是022。

尝试使用root用户创建文件及目录,此时umask值为022,文件权限是644,目录权限是755。
image

尝试使用普通用户创建文件及目录,此时umask值为002,文件权限是664,目录权限是775。
image

posted @ 2021-12-15 17:27  它叫鸮  阅读(169)  评论(0)    收藏  举报