【Linux】二、Linux权限理解(总)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 目录一、shell命令以及运行原理二、Linux 权限的概念 三、 Linux权限管理3.0 什么是权限?3.1 文件访问者的分类(人)3.2 文件类型和访问权限(事物属性)3.3 文件权限值的表示方法3.4 文件访问权限的相关设置方法3.5 umask 命令四、目录的权限五、粘滞位

目录

一、shell命令以及运行原理

二、Linux 权限的概念

三、 Linux权限管理

3.0 什么是权限?

3.1 文件访问者的分类(人)

3.2 文件类型和访问权限(事物属性)

3.3 文件权限值的表示方法

3.4 文件访问权限的相关设置方法

3.5 umask 命令

四、目录的权限

五、粘滞位


一、shell命令以及运行原理

       Linux 严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用 kernel而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通

图解,ps:

image.png

如何理解?为什么不能直接使用kernel?

从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理
  • 同时,将核心的处理结果翻译给使用者

对比 windows GUI,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)

 shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运行出结果,通过shell解析给用户。shell 就相当于一个媒介

图解,ps:

image.png

  • 帮助理解:如果说你是一个闷骚且害羞的程序员,那 shell 就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花。假设小花已经心有所属了,而你又死缠烂打,一直找王婆传达你的意图,王婆已经去问过小花了,小花已经拒绝了,王婆有权限就可以直接拒绝你

我们找到媒婆(媒婆相当 shell,媒婆是所有媒婆的统称,shell 是外壳程序的统称,而王婆是一个具体的媒婆,所以王婆相当于一个具体的 shell 外壳程序,如 bash )姓王,所以我们叫它王婆,王婆对应我们常使用的 bash

张三为什么不去直接找如花 ?&& 媒婆存在的价值 ?

  1. 解决张三不擅长的问题(用户不擅长与操作系统打交道,如果让用户直接访问操作系统:a、操作成本特别高  b、是人就会犯错误,会给操作系统带来隐患)
  2. 保护如花(保护操作系统)

什么是shell ?

  • shell 是包裹在操作系统外的一层软件层,它给命令行进行解析

为什么要存在shell ?

  • 解决用户不擅长与操作系统打交道
  • shell 承担保护操作系统的角色

shell VS bash ?

  • 如果 shell 是媒婆,那么 bash 就是王婆
  • 也就是说 shell 是对所有外壳程序的统称,而王婆是具体的一个外壳程序,也就是说不同的 Linux 环境,它们所使用的外壳程序不一定一样

二、Linux 权限的概念

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

  • 超级用户:只有一个,可以再linux系统下做任何事情,不受限制
  • 普通用户:可以有多个,在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$"

如何进行用户间的切换?

命令: su [用户名]

功能:切换用户

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令

su 和 su - ?

  1. 普通用户切换 root ,su 只是切换了 root 身份,但是 shell 环境仍然是普通用户的 shell,且 pwd 仍是普通用户的目录。root 切换 普通用户也是如此
  2. 普通用户切换 root ,su - [user] 把用户和 shell 环境一起切换成了 root 身份,且 pwd 是 root 的目录。root 切换普通用户也是如此

普通用户切换 root,su root ,ps:

image.png

普通用户切换 root ,su - root,ps:

image.png

三、Linux权限管理

3.0 什么是权限?

       比如腾讯视频会员,有 vip 观看的视频普通用户看不了,也就是没开会员的用户。所谓的权限是针对人的,事物的基本属性决定权限。权限本质上是一件事是否允许被“你“做”

image.png

那什么是文件的权限?

  1. 文件权限受“人“”影响——腾讯视频会员视频普通用户看不了
  2. 文件受自身特点(事物属性)的影响——普通用户不具备观看 VIP 视频的属性

所以文件的权限 = “人” + 事物的属性

下面的就是文件的权限,那该怎么理解呢?

image.png

3.1 文件访问者的分类(人)

  • 文件和文件目录的所有者: u ---User(中国平民 法律问题)
  • 文件和文件目录的所有者所在的组的用户: g ---Group(不多说)
  • 其它用户: o ---Others ,不属于上面的任何一个(外国人)

group 存在的意义:

  • 比如某个公司想要开发一款软件,公司内的人分为A组和B组,两组独立开发,互相竞争,最后选出最好的一款。A组和B组在同一台服务器上工作。因为是竞争关系,每组都应该有自己的权限,即A组不能访问B组的文件,B组也不能访问A组的文件。这时候 group 存在的意义就很大了,group 的分配方便组内协同工作,同时允许各组访问各自的文件,而不能查看其他组的。

3.2 文件类型和访问权限(事物属性)

(a)文件类型

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

(b)基本权限

  1. 读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  1. “-” 表示不具有该项权限

ps:

image.png

image.png

说明:Linux 下,不以文件后缀来区分文件类型(并不代表不可以使用,在系统层面没有意义,给自己看的)

3.3 文件权限值的表示方法

a) 字符表示方法

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

b) 8进制数值表示方法

权限符号(读写执行) 八进制 二进制
r-- 4 100
-w- 2 010
--x 1 001
rw- 6 110
r-x 5 101
-wx 3 011
rwx 7 111
--- 0 000

3.4 文件访问权限的相关设置方法

(a)chmod 命令

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod 命令权限值的格式

① 用户表示符(+/-=)权限字符

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

用户符号:

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

ps:

1. chmod u+x test.txt
2. chmod u-x test.txt
3. chmod u-x,g+w test.txt
4.

image.png

②三位八进制数字

1. chmod 777 test.txt
2. chmod 640 test.txt
3.

image.png

3.5 umask 命令

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

新建文件夹默认权限=0666,新建目录默认权限=0777

       但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask 的影响。假设默认权限是 mask,则实际创建的出来的文件权限是: mask &( ~umask)

 格式: umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户 root 默认掩码值为 0022,普通用户默认为 0002

ps:

image.png

一般目录文件,起始权限从 777(rwx rwx rwx) 开始

一般普通文件,起始权限从 666(rw- rw- rw-) 开始

但实际上创建一个目录或文件,我们所看到的目录权限并不是上面的情况,这是为什么?

image.png

因为在 Linux 中,在设置权限时,系统默认会有一个 umask 权限掩码。查看权限掩码。ps:

image.png

        对于 0022 我们这里先不管第一个 0(它涉及后面的概念),现在只看后三位 022,每一位数转成对应的二进制就是 000 010 010

         umask 其中设定了一个概念:凡是在 umask 中出现的权限,都不应该在最终权限中出现

       在显示器上我们看到的权限是最终的权限,最终权限 = 起始权限 & (~umask),& 为按位与,~ 为取反

注意:不是减法运算,是经过位运算符运算后得出的结果,即最终权限。

       比如,创建了一个目录,目录的起始权限是 777,八进制为 111 111 111。当前登录的用户是超级用户 root ,umask 的掩码值为 0022,只取后三位 022,八进制为 000 010 010

       根据 最终权限 = 起始权限 & (~umask) 得:最终权限 = 111 111 111 & (~000 010 010)

image.png

如图,ps:

image.png

创建文件也是同理,不在演示了。这里暂时不讲 sudo 和普通用户设置 sudo 的相关权限

四、目录的权限

一些常见的面试题

(1)进入一个目录,需要什么权限?

答:需要 x 权限。

正常情况下可以进入,ps:

image.png

删除 user 的 r 权限,依旧可以进入,ps:

image.png

删除 user 的 w 权限,依旧可以进入,ps:

image.png

删除 user 的 x 权限,不可以进入,ps:

image.png

  1. 注意:超级用户 root 基本不受权限的影响

image.png

(2)用户在目录下创建文件、目录需要什么权限?

答:需要 w 权限。

有 w 权限,可以创建,ps:

image.png

没有 w 权限,不能创建,ps:

image.png

  •   注意:超级用户 root 基本不受权限的影响

(3)读取一个目录下的文件列表,需要什么权限?

答:需要 r 权限。

有 r 权限,可以读取,ps:

image.png

没有 r 权限,不能读取,ps:

image.png

  • 注意:超级用户 root 基本不受权限的影响

五、粘滞位

       假设,在一种特定的情况下,几个普通用户同时共享一个目录,对该目录具有读、写、执行权限,对于root 来说这些普通用户就是 others,假设目录由超级用户 root 创建,用户A 和用户B在该目录下创建了一些文件,用户A可以删除用户B的文件,用户B也可以删除用户A的文件,这个问题就会让用户A很苦恼,自己创建的文件其他人为什么可以删掉自己的文件(在同一个共享目录下),有什么办法解决这个问题吗?

为了解决这个不科学的问题, Linux 引入了粘滞位的概念

[root@localhost~]#chmod+t/home/#加上粘滞位[root@localhost~]#ls-ld/home/drwxrwxrwt. 3rootroot409691916:00/home/[root@localhost~]#su-litao[litao@localhost~]$rm/home/abc.c#litao不能删除别人的文件rm:是否删除有写保护的普通空文件"/home/abc.c"yrm: 无法删除"/home/abc.c": 不允许的操作

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

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

这里的粘滞位就不演示了,有点麻烦...

----------------我是分割线---------------

文章到这里就结束了,下一篇即将更新

相关文章
|
2天前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
21 11
|
2月前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
53 2
|
2月前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
2月前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
36 1
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux专栏10:Linux权限详解(上)
Linux专栏10:Linux权限详解(上)
40 3
|
2月前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
30 0
|
2月前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
|
2月前
|
Linux
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
|
2月前
|
安全 Linux 数据安全/隐私保护
Linux安全大揭秘:一键切换root权限背后隐藏的秘密
【8月更文挑战第23天】Linux操作系统因其出色的灵活性和安全性备受推崇,用户权限管理是其核心功能之一。本文介绍如何安全地在用户间切换,特别是切换至拥有最高权限的root用户。我们探讨了两种主要的方法:`su` 和 `sudo` 命令,并通过示例展示了它们的应用场景。`su` 命令适合需要执行多个root权限操作的情况,而 `sudo` 更适用于临时执行单个高权限命令。同时,文章还提供了一些最佳实践,如避免长时间使用root账户、定期审查 `sudoers` 文件等,以确保系统的安全性。正确理解和应用这些工具和原则对于维护Linux系统的安全至关重要。
40 0
|
2月前
|
安全 Linux 数据安全/隐私保护
在Linux中,什么是最小权限原则?
在Linux中,什么是最小权限原则?
下一篇
无影云桌面