Linux权限

目录

1. Linux的权限概念

2. Linux权限管理

 2.1 文件访问者的分类

 2.2 文件类型和访问权限

 2.3 文件权限的表示法

 2.4 文件访问权限的相关方法

  3. 目录的权限

3.1 粘滞位


1. Linux的权限概念

Linux下有两种用户: 超级用户(root)和 普通用户

  • 超级用户:可以在系统中做任何事情,不受限制
  • 普通用户:行为被受到限制
  • 超级用户的命令提示符是'#' ,普通用户的命令提示符是'$'

如何从普通用户切换至超级用户?

命令:su - 

功能:从普通用户切换至root用户

2. Linux权限管理

2.1 文件访问者的分类

  • 文件和文件的拥有者:u - user
  • 文件和文件的拥有者所在的组:g - group
  • 其他用户:o - other

2.2 文件类型和访问权限

文件类型:

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

访问权限:

  •  读(r):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w):对文件而言,具有修改文件内容的权限;对目录来说具有修改目录内文件的权限
  • 可执行(x):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • "-"表示不具有上述权限

 2.3 文件权限的表示法

1. 字符表示法

Linux表示 说明 Linux表示 说明
r-- 只读 -w- 只写
--x 只运行 rw- 可读可写
r-x 可读可运行 -wx 可写可运行
rwx 可读可写可运行 --- 无权限

2.八进制表示法

权限 八进制 二进制
r-- 4 101
-w- 2 010
--x 1 001
rw- 6 110
r-x 5 101
-wx 3 011
rwx 7 111
--- 0 000

2.4 文件访问权限的相关方法

1.chmod方法

功能:修改访问者对于文件或者目录的权限  (但需要注意修改的文件或者目录必须是属于自己的)

格式:chmod [参数] 选项 文件名

常见选项:

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

常见参数:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a: 全部用户

举例:

1.可以通过逗号来完成多访问者的权限修改

Linux权限_第1张图片

 2.可以通过a来帮助我们完成整体修改

Linux权限_第2张图片

 3.可以通过八进制来完成整体修改

Linux权限_第3张图片

2. chown方法

功能:修改文件的拥有者 

格式 :chown [用户名] 文件名

但是当我们将自己的东西送给他人时,我们也需要经过他人的同意才能将其送出,因此我们需要使用sudo来提升我们的权限,可以强制送出

 举例:

 当我们直接修改拥有者时,操作是不被允许的,但当我们加上sudo来强化我们的权限时,结果会怎么样呢?

Linux权限_第4张图片

 我们会发现刚才的报错消失了,并且文件的拥有者改成了lwn,说明我们已经将我们的文件送出了

3. chgrp方法

功能:修改文件的所在组

格式 :chgrp [用户名] 文件名

与chmod方法相似

举例: 

 4.umask

功能: 查看或修改文件掩码

新建目录的默认权限是777,新建文件的默认权限是666

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。

所以当我们创建一个新目录时,目录的权限是775,创建一个新的文件时,文件的权限是664

原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)

默认情况下umask的值是002

 我们也可以修改umask的值

Linux权限_第5张图片

当我们将umask修改为000时,我们可以看到目录和普通文件的原始权限分别为777和666

 3. 目录的权限

目录的权限分为三种,与文件的权限类似:

  1. 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
  2. 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  3. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

3.1 粘滞位

如果一个用户拥有某个目录的写权限,那就可以修改这个目录中的任意文件

那么如果一个目录是共有的,任何人都能够随机删除别人的文件,那这不是乱套了,因此Linux引入了粘滞位这个概念

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

你可能感兴趣的:(Linux,linux)