【Linux】权限(1):初识权限与使用理解

目录

[一 Linux权限的概念](#一 Linux权限的概念)

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

什么是白名单机制呢?

[su && su root](#su && su root)

su~

sudo

exit

ctrl+D

[二 Linux的权限管理](#二 Linux的权限管理)

[1 权限的本质](#1 权限的本质)

[2 权限角色](#2 权限角色)

[3 groups](#3 groups)

[3 权限属性 rwx](#3 权限属性 rwx)

[4 示例](#4 示例)

[5 几个问题](#5 几个问题)

[1 整体如何理解?](#1 整体如何理解?)

[2 为什么要有所属组?](#2 为什么要有所属组?)

[6 如何修改权限](#6 如何修改权限)

方法一

[chmod 命令](#chmod 命令)

方法二

[7 修改拥有者&&所属组](#7 修改拥有者&&所属组)

[chown 命令](#chown 命令)

[chgrp 命令](#chgrp 命令)

[8 文件类型](#8 文件类型)

[9 三个关于权限的问题(面试题)](#9 三个关于权限的问题(面试题))

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

(2)什么决定了文件或目录的默认权限?

(3)root新建的文件,普通用户不读不写不执行,可以删除吗?


一 Linux权限的概念

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

・超级用户:可以在 Linux 系统下做任何事情,不受限制

・普通用户:在 Linux 下做有限的事情。・超级用户的命令提示符是 "#",普通用户的命令提示符 是 "$"。

那怎么解决呢?

解决方案1:把普通账号,变成root账号。但是只能是管理员做

解决方案2:对指令进行提权! 所有的合法用户做。

指令提权就用到了指令sudo,在使用sudo时输入密码输入的是自己的密码

但是如果所有的指令都能提权的话,那么权限不就形同虚设了吗?

在默认情况下,普通账号是无法进行sudo的

普通用户之间,无法sudo

为什么有些用户能直接执行提权,而有些用户不能呢?

是因为白名单机制:只有在白名单里面的人,才能执行sudo

什么是白名单机制呢?

白名单机制是一种用于限定允许访问或授权成员资格的安全策略。

白名单机制的工作原理是基于一种筛选机制,通过验证实体是否在预定义的白名单中 ,来决定是否允许其进行特定操作或访问资源。只有出现在白名单中的项目才被允许通过或执行,其他所有未明确授权的都被自动拒绝,遵循 "未被明确允许的,就是被禁止的" 原则。

可以将白名单理解为Linux中的一个配置文件

su && su root

定义:切换账号/用户

特点:路径不改变

指令:su[用户名] 从当前用户切换为su后的用户

su~

定义:让超级用户宠幸登录

使用前提:root账号才能这么干

sudo

定义:对指令进行提权

特点:第一次sudo之后10~15分钟的登录期间不用再输密码;默认情况下,普通账号是无法进行sudo的。

exit

定义:切换回普通账号

ctrl+D

这个热键和exit功能相同,都是切回普通账号。

区别: Ctrl + D两次,会推出XShell。


二 Linux的权限管理

1 权限的本质

权限的本质是主体(如用户、进程)对客体(如文件、数据库、网络资源)执行特定操作(如读、写、执行)的资格或能力的约束与管理

权限的本质是限制:"角色"

什么是角色呢?

例如:你叫张三,是一个校长。只有校长才能进入校长室,那么你能进入校长室是因为你是张三,还是你是校长?

很显然:是因为你是校长。此时校长就是你的角色。

角色+具体的人=人

2 权限角色

在Linux系统中,权限角色有三类:文件的拥有者 文件的所属组 文件的other

1 文件的拥有者

文件的拥有者是指创建该文件的用户(或被特权用户指定的用户),是对文件拥有核心控制权(可修改权限、内容等)的 "默认负责人"。

2 文件的所属组

文件的所属组是指该文件所归属的一个用户组,组内所有用户可共同享有系统为该组设定的对文件的访问权限,其核心作用是方便多用户间共享文件权限。

3 文件的other

既不是文件拥有者,也不属于文件所属组的所有系统用户,是权限范围最广的一类

举个例子:你买了一个电脑,这个时候你就是电脑的拥有者。但是你的爸爸妈妈也可以使用这个电脑,这个时候爸爸妈妈就是所属组。而像你的邻居,过路人等等,就是other

3 groups

定义:查看所属组

3 权限属性 rwx

r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息 的权限

(**w/**2):Write对⽂件而言,具有修改文件内容的权限;对⽬录来说具有删除移动目录内文件的权限

执行x/1):execute对文件而言,具有执行文件的权限;对⽬录来说,具有进入目录的权 限

"---"表示不具有该项权限

4 示例

我们发现,在文件类型的后面,有九位字母:三位为一组,分别代表拥有者的属性,所属组的属性,other的属性

注意:rwx的顺序不能改变!!!

以拥有者权限为例:

角色:拥有者

人:root

文件权限:rwx

为什么这里没有other?

因为other指的是出来拥有者和所属组之外的人!很多!不需要记录!!

怎么理解拥有者,所属组,other和root,whb,zhangsan的区别?

5 几个问题

1 整体如何理解?

权限 = 角色 + 目标事物的属性

本质上角色会由人扮演(权限就是限制人的,有的人可以有的人不能),如果这个时候是权限角色中的一个,但是没有相应的文件属性,那也不能对文件操作

2 为什么要有所属组?

比如说在公司,有两个组共同挑战一个项目,你叫张三。当你写出来一个code.c的文件,你的倒是需要权限去看,如果没有所属组,那么只能打开other的权限,但与此同时其他组的人也能看,李四可能会cope。

但其实这种情况比较少,默认情况**:每一个人,自成一个组!!!**

所属组就是在一个特定的范围内,进行权限管理

也可以把一个人加到自己的组里:

6 如何修改权限

方法一
chmod 命令

功能:设置文件或目录的访问权限。

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

常用选项

  • -R:递归修改目录及其子目录下所有文件的权限(仅对目录有效)。
  • 说明 :只有文件的拥有者和 root 用户才有权限改变文件的访问权限。

chmod 命令权限值的格式用户表示符 +/-/= 权限字符

  • 操作符含义

    • +:向指定的权限范围增加权限代号所表示的权限。
    • -:向指定的权限范围取消权限代号所表示的权限。
    • =:向指定的权限范围赋予权限代号所表示的权限(覆盖原有权限)。
  • 用户表示符含义

    • u:文件的拥有者(User)。
    • g:文件所属组的用户(Group)。
    • o:其他用户(Other)。
    • a:所有用户(All,即 u、g、o 的总和)。

当使用 chmod u+a 就表示拥有者增加所有权限

还可以组合使用指令:

sudo chmod 是一个组合命令,意思是以超级用户(root)的权限执行 chmod 命令,用于修改那些当前用户(非 root)本身没有权限修改的文件或目录的访问权限

没有权限会有什么问题?

普通账号受到权限约束,root几乎不受!
Linux中,身份匹配,只会匹配一次!

例如:你的拥有者和所属组都是whb,拥有者没有任何权限,而所属组只有可读。但是系统匹配了第一个拥有者之后,就不会再匹配后面的

权限识别,只会识别一次
x:可执行???

具有可执行权限 != 可以执行

可以执行 = 具有可执行权限 + 你就是一个二进制文件

方法二

我们知道,每一位的取值只有有权限和没有权限两种,我们把有权限假设为1,没有权限假设为0

那么我们可以把每一个成员的二进制数转化成十进制数,结合起来,就可以修改

7 修改拥有者&&所属组

chown 命令

功能修改 文件或目录的拥有者(Owner)。

格式chown [参数] 用户名 文件名

常用参数

  • -R:递归修改目录及其子目录下所有文件的拥有者(仅对目录有效)。

实例

  1. chown user1 f1:将文件 f1 的拥有者修改为用户 user1
  2. chown -R user1 filegroup1:递归将目录 filegroup1 及其内部所有文件的拥有者修改为用户 user1

chgrp 命令

功能修改 文件或目录的所属组(Group)。

格式chgrp [参数] 用户组名 文件名

说明 :与 chown 类似,chgrp 也支持 -R 参数进行递归修改。例如 chgrp -R dev groupdir,表示递归将目录 groupdir 及其内部所有文件的所属组修改为 dev 组。

8 文件类型

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘,光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

9 三个关于权限的问题(面试题)

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

对目录来讲:

  1. x 决定是否能进入
  2. r 决定是否能查看目录下的文件信息
  3. w 决定在指定的目录下,是否能够删除和新建文件文件是否能被删除,由所在的目录 w 决定!!!!!(不由拥有者决定)
(2)什么决定了文件或目录的默认权限?
(3)root新建的文件,普通用户不读不写不执行,可以删除吗?

这两个问题我们在下一篇讲解

相关推荐
hzp6662 小时前
使用WinBoat在Linux中安装window应用
linux·window·winboat·linux可视化
正在走向自律3 小时前
影刀RPA完全指南:从零入门到自动化高手(2/10)
运维·人工智能·自动化·rpa·影刀·rpa自动化工具·ai结合影刀
乌萨奇也要立志学C++3 小时前
【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程
linux·运维·服务器
ManageEngineITSM7 小时前
技术的秩序:IT资产与配置管理的现代重构
大数据·运维·数据库·重构·工单系统
Bony-9 小时前
Go语言完全学习指南 - 从基础到精通------语言基础篇
服务器·开发语言·golang
阿巴~阿巴~9 小时前
线程安全单例模式与懒汉线程池的实现与优化
linux·服务器·单例模式·线程池·饿汉模式·懒汉模式·静态方法
大隐隐于野9 小时前
tcp 丢包分析
linux·服务器·网络
梦昼初DawnDream10 小时前
linux安全基线
linux·运维·安全
Broken Arrows10 小时前
在Linux系统中,top命令的显示参数详解
linux·运维·服务器