【Linux】权限(shell外壳、文件权限、管理权限)

news2024/9/25 13:21:20

推荐文章

权限(1)
权限(2)


一、shell 外壳

在这里插入图片描述

1 文章详解:

秒懂shell外壳程序

2.用户是直接访问操作系统吗?(shell 是用户和操作系统的接口)

在 Linux 下使用各种指令来进行操作从而达到自己的目的,但用户这是在直接访问操作系统吗? 不是

不直接访问操作系统的原因:

  • 不是所有人都擅长直接访问操作系统,用户需要足够熟悉操作系统才有可能正确的访问操作系统,但绝大多数人是不熟悉操作系统的。
  • 操作系统不易使用。直接访问操作系统的操作成本过高,需要学习很多知识。
  • 保护 os 的安全性。人总是会犯错的,容易带来一些不安全的因素,如果操作失误可能会导致计算机直接崩溃。

3.shell 外壳是什么?

  1. **原理:**Linux 严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户,不能直接使用 kernel。 而是通过 kernel 的“外壳”程序,也就是所谓的 shell,来与 kernel 沟通。
  2. shell 是用户和操作系统的接口
  3. **从技术角度,**Shell 的最简单定义:命令行解释器(command Interpreter)
  4. 核心功能主要包含:
    • 将使用者的命令翻译给核心(kernel)处理。
    • 同时,将核心的处理结果翻译给使用者。
    • 对于恶意指令或者错误,它不会提交给操作系统,从而提高安全性
  5. **shell 类型:**最常见的是 bash(它逐渐成为 Linux 系统的标准 Shell),
    1. 另外还有 sh, csh, tcsh, ksh。它们出现的年代不同,所支持的功能也有差异
      在这里插入图片描述

4.shell 的执行

  • 遇到简单、易执行、低风险的指令,shell 本身直接执行
  • 有风险,用户自定义的指令,shell 派生子进程, 让子进程执行风险指令。降低自身风险

二、用户权限

1.用户类型

  1. Linux 下有两种用户:超级用户(root)、普通用户。
    • 超级用户:可以再 linux 系统下做任何事情,不受限制
    • 普通用户:在 linux 下做有限的事情。
    • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
  2. 命令: su [用户名]
    功能:切换用户。

1.1.普通用户切换 root

//普通用户切换 root
su 
su root
su -
su - root

su 与 su - 的区别

Linux 中su 与su - 的区别

su root (提高权限)

1. 输入 root 密码后,
2. 切换之 root 用户
3. 但是 pwd 目录不变。
4. 还是原先普通用户的目录
5. shell 环境仍然是普通用户的 Shell

在这里插入图片描述

su - root (完全切换了身份)
1. 输入 root 密码后
2. 切换之 root 用户
3. 但是 pwd 目录,改变为/root
4. Shell 环境一起切换成 root 身份了

在这里插入图片描述


1.2.普通用户之间的切换

1.3.root 切换普通用户

直接切换

su 用户

1.4.用户切换密码限制

普通用户切换成 root,需要输入 root 的密码

root 账号变成普通用户,不用密码的

普通用户变成另一个普通用户,需要对方的密码

2.sudo提高权限(针对普通用户)

普通用户:不能切换为 root 账户,但是还想使用 root 的部分权限,执行指令

sudo 指令 实现对指令的提高权限

sudo touch a.txt

  • 如果我们输入 sudo 就可以,以 root 的身份执行指定的命令,root 的密码是否毫无意义?? sudo ls ——默认大部分都是不能执行的!
  • 因为普通用户没有被添加到 sudoers 的配置文件中(文件属于 root 用户),没有被批准获取 sudo 权限。
  • 一个用户用户名在该 sudoers 配置文件中,才允许这个用户执行 sudo。
  • 一个用户用户名不在该 sudoers 配置文件中,不允许这个用户执行 sudo。

三、权限管理

1.什么是权限

权限就是通过一定的条件来拦住一部分人,给一部分人权利,来访问某种资源。

就和门禁和 vip 的道理相同。

权限的有无,就是能或者不能的问题。

2.权限的本质

  1. 权限和人有关,就像在视频网站上有的视频只能是 vip 才能看。
  2. 权限也与事物的属性有关,就像不能在视频网站什么刷题是一样的,它没有这个属性。
    也就是说:权限=人+事物的属性有关

这个“人”,并不是指的具体某一个人,而是一种角色

就像是在学校的校门的门禁一样,并不是说你叫张三就能进入学校,而是说,你是这个学校的学生,是这个角色,才能进学校。

  • 权限,不仅可以限制人(用户)能不能访问,也要确保被访问的对象是否具有对应的属性
  • 比如 user_aa 想去 leetcode 看电影。但是 leetcode 不具备看电影的属性。

3.Linux 群体(身份)

三种身份(拥有者、所属组、other)

在 Linux 中有三种“身份”:

  • 文件和文件目录的所有者:u—User
  • 文件和文件目录的所有者所在的组的用户:g—Group
  • 其它用户:o—0thers
    用户 root、普通用户可以拥有以上一个或多个身份。

root 可以是拥有者。

普通用户就可以是所属组、other

3.1 但是我们一般情况看不见 other 啊?

在 Linux 下是有组的概念的,一般情况下自己就是一组。

other 是匹配完拥有者和所属组后,剩下的不匹配的都是 other 了。

由于 other 一般都会比较多,就不显示了。

3.2 为什么会有所属组的概念?

举个例子;在一家公司里可能会有两组人做同时一个项目,如果这两组都在同一个服务器上做。当某一天,如果领导需要看第一组的源代码时,当放开的时候,另外一组可能会看到第一组的源代码。所以在 Linux 系统中就得有所属组。

当第一组组内在所属组内放开权限时候,另外一组也看不到。

所属组就是为了在多人协作的时候,更好的进行权限管理。

在这里插入图片描述

4.文件的权限

文件的属性权限:一般三种:

  • r 读

  • w 写

  • x 可执行
    细分:

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

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

  • 执行(x/1):execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 iv.“一"表示不具有该项权限

属性列

在这里插入图片描述
在这里插入图片描述

😸文件类型

在window中是通过文件的后缀来判断文件类型。

Linux并不是通过文件后缀来判断的,那么它是怎么区别的呢?

通过第一个属性列来区分。

d:文件夹 、目录
-:普通文件,文本,源代码,图片,视频,库,可执行等
l:软链接(类似Windows的快捷方式) 指向一个文件
b:块设备文件(例如硬盘、光驱等) 
p:管道文件 
c:字符设备文件(例如屏幕、显示器等串口设备) 
s:套接口文件

对于文件后缀的态度:虽然linux不通过它识别文件类型,但是我们依旧推荐使
用!

Linux系统不以文件后缀作为区分文件类型,但并不是代表gcc不需要。

所以说Linux!=gcc

也就是说Linux不区分文件类型,但是Linux上面的工具可能会区分。

所以我们可以对Linux的文件使用后缀。

file指令 查看文件类型

辨识文件类型。

语法:file [选项] 文件或目录…

常用选项:

* -c 详细显示指令执行过程,便于排错或分析程序执行的情形。 
* -z 尝试去解读压缩文件的内容。

4.1.文件权限的修改

4.1.1 谁能修改权限?
  • 文件的拥有者
  • root 账户
4.1.2.chmod 设置文件访问权限

必须处在 拥有者的角色,或者使用 root 账户

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

说明:只有文件的拥有者和 root 才可以改变文件的权限

方法一:权限字符

我们可以更改一个人的一个权限,一个人的多个权限,多个人的一个权限,多个人的多个权限,不过组合时用逗号做分离。

 ① 用户表示符+/-=权限字符
 +:向权限范围增加权限代号所表示的权限
 -:向权限范围取消权限代号所表示的权限
 =:向权限范围赋予权限代号所表示的权限
 用户符号:   
 u:拥有者
 g:所属组
 o:其它用户
 a:所有用户

实例:

# 赋予权限
  chmod a=x /home/abc.txt

# 必须处在 拥有者的角色,或者使用 root 账户
# 给“拥有者”增加对于 file.txt 权限
chmod u+r file.txt  #增加 读
chmod u+w file.txt#增加 写
chmod u+x file.txt
chmod u+rwx file.txt

# 给拥有者去掉 file.txt 权限
chmod u-r file.txt  #删掉 读
chmod u-w file.txt  #删掉 写
chmod u-x file.txt  #删掉 执行
chmod u-rwx file.txt

#所属组 权限变更
chmod g+r file.txt 
chmod g-w file.txt 

#other 权限变更
chmod o+r file.txt 
chmod o-w file.txt

#修改多个角色权限
chmod u-r,g-w a.txt
方法二:三位 8 进制数字

二进制 —— 八进制转化
在这里插入图片描述

实例:

#664 -- 110 110 100  rw-rw-r--
chmod 664 abc.txt

#640 -- 110 100 000  rw-r-----
chmod 640 abc.txt

在这里插入图片描述

4.1.3.chown 修改文件的拥有者

功能:修改文件的拥有者

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

实例:

#修改文件的拥有者
# 拥有者更改为 root
chown root t.txt

4.2.有无权限的对比

普通用户

用普通用户 yan 创建一个文件 file.txt

去掉文件的所有权限后,执行读文件和向文件写入,发现 a 都不能执行。

对于普通用户 yan,自身要受到对应权限的约束,即使这个文件的拥有者是 yan 的。
在这里插入图片描述

root 用户

当把 file.txt 所有的权限全部去掉之后,root 还是想写入就能写,想读就能读。

root 账号不受权限的约束。
在这里插入图片描述

所以说普通用户是受到权限的约束的。

总之:权限存在的意义就是保证普通用户的文件的一般安全性。

4.3 判定权限的顺序

在身份识别,确定权限的时候,只识别一次。

访问一个文件时,得先判定相对于这个文件来说是拥有者、所属组还是 other,然后再在特定的权限列表里,进行权限识别,然后才能决定到底能不能访问这个文件。

拥有者权限: -w-

所属组 :rw-

但是不能cat file.txt,

因为权限匹配只识别一次,识别到拥有者,但是没有读权限。因此不行。

即使所属组有读权限,但是没有被匹配上。

在这里插入图片描述

4.4执行权限x

身份(拥有者,所属组、other)具有可执行权限,权限x

文件是可执行文件,例如 a.out
在这里插入图片描述

4.5.修改文件的拥有者、所属组

4.5.1.chown文件的拥有者
4.5.2.chgrp修改所属组
#普通用户修改文件的拥有者
sudo chown root  file.txt
#root修改文件的拥有者
chown root file.txt

#修改所属组
chgrp root file.txt

chown root:root file.txt #拥有者 所属组

5.目录的权限

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

6.默认权限

为什么我们创建的普通文件:默认的权限不是777,而是664?
为什么我们创建的目录文件:默认的权限不是777,而是775?

创建普通文件时,起始权限是:0666,去掉x
创建目录文件时,起始权限是:0777,包含x

umask权限掩码:定制一个文件被创建的时候的默认权限
在这里插入图片描述

最终权限 =起始权限 &(~umask)

7.粘滞位(防止别人删自己的文件)

粘滞位:给(共享)目录中的other设置的一个权限位,具有x的意义,
同时也进一步对目录权限进行特殊限定:该目录里面的文件,只有root或者文件的拥有者有权利进行删除! 其他人一概不允许!

chmod +t /home/ # 加上粘滞位


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1992976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20240807提取飞凌OK3588-C的IMG固件中的时钟频率link_freq和pixel_clock

20240807提取飞凌OK3588-C的IMG固件中的时钟频率link_freq和pixel_clock 2024/8/6 16:32 缘起:调试代码的时候边调试变修改,在优化MIPI CSI时钟的时候,越改越差!最后变成了负优化。 现在源代码/C文件找不到了,但是还有…

SQL注入实例(sqli-labs/less-19)

0、初始页面 1、确定闭合字符 注入点为referer,闭合字符为单引号 2、爆库名 3、爆表名 4、爆列名 5、查询最终目标

笔面试编程题总结

8/6诺瓦星云 修改程序 void point(int *p){*p p[2];}; int main() {int c[] {1,2,3,4,5},*p c;point(p1);for(;p <c5;){printf("%d",*p);}return 0; }1、分隔字符串 strtok //c语言 #include <stdio.h> #include <string.h>// 函数声明 char* fin…

【合并 K 个升序链表】python刷题记录

R4-分治篇 目录 最小堆方法 分治法 ps: 如果只是数组就很好处理了 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def mergeKLists(self, lists…

C++ GDl+ 多张图片合并生成GIF动画格式图片

使用ImageMagick多张图合成GIF。 1、工具下载安装 下载地址&#xff1a;ImageMagick – Download&#xff0c;windows下载版本如下&#xff1a; 下载后&#xff0c;安装&#xff0c;安装时选择为C/C安装动态库和头文件。 2、代码实现 附加包含目录&#xff1a;ImageMagick-7.…

Is exchanging integral and sum this way allowed?

See https://math.stackexchange.com/questions/3878856/is-exchanging-integral-and-sum-this-way-allowed#:~:textYes%2C%20and%20the%20reason%20is%20simple%20-%20the,just%20a%20whole%20lot%20of%20these%20squeezed%20together.

涉密U盘管理:公司禁用个人U盘的两种常规设置方法

古语云&#xff1a;“事以密成&#xff0c;语以泄败。”此言道出了保密工作对于事业成功的重要性。 在当今这个信息爆炸的时代&#xff0c;数据的安全与保密已成为企业生存与发展的基石。尤其是在处理涉密信息时&#xff0c;任何微小的疏忽都可能引发严重的后果。 因此&#x…

zabbix7.0TLS-04-快速入门-监控项

文章目录 1 概述2 查看一个主机的所有监控项3 添加新的监控项3.1 监控项 各个配置项详解3.2 测试配置项3.3 添加成功 1 概述 一个监控项对应了一个键和值。监控项是监控数据的来源&#xff0c;没有监控项也就没有监控数据。 监控项必须添加到某一个主机中&#xff0c;一个主机…

学习日志8.8--防火墙状态检测

在之前的拓扑实验中手动配置了安全策略&#xff0c;允许trust到untrust之间进行通信&#xff0c;也允许untrust到trust之间进行通信。意味着&#xff0c;防火墙是支持单方向管控的&#xff0c;意思是inbound和outbound方向的流量管控需要分别配置。 当在配置trust到untrust的安…

【人工智能】【机器学习】-好书推荐之《Python神经网络编程》

目录 内容概览 编程环境 面向对象 学习目标 如果你是想要自学机器学习相关知识的读者&#xff0c;我相信看完这篇文章的介绍后&#xff0c;你会对机器学习有更清晰的认识。帮助你走进机器学习的殿堂。 《Python神经网络编程》&#xff08;原书名&#xff1a;Make Your Own …

STM32基础篇:I2C通信协议

I2C总线 I2C&#xff08;IIC---Inter Integrated Circuit 内部集成电路&#xff09; 以上为I2C大体结构图&#xff0c;其中时钟线SCL用于传输时钟信号&#xff0c;数据线SDA来传输实际的数据。 主机与从机 1.主机的职责 假如由从机1和从机2&#xff0c;从机1想向SDA上发送一…

瞬态太阳光模拟器特点

技术指标与主要功能 瞬态太阳光模拟器是一种高端的分析仪器&#xff0c;主要用于能源科学技术、环境科学技术和资源科学技术领域。它能够模拟太阳光的光谱、光强和光照条件&#xff0c;为实验室环境中的光伏电池及其他太阳能设备提供稳定可靠的光照环境。技术指标包括但不限于辐…

AI与PS:技术革命下的设计工具比较

在数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和 Photoshop&#xff08;PS&#xff09;已成为创新和创意的两大支柱。虽然它们在某些方面有所交集&#xff0c;但本质上却有着根本的不同。本文将深入探讨这两者的不同之处&#xff0c;帮助你更全面地理解 AI 和 P…

《学会 SpringMVC 系列 · 剖析出参处理》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

知乎问答广告开户收费,知乎广告投放价格!

知乎&#xff0c;作为中国最大的知识分享社区&#xff0c;凭借其庞大的用户基础、高质量的内容生态和精准的数据分析能力&#xff0c;成为了众多企业争相投放广告的热门平台。如何在知乎上精准投放广告&#xff0c;实现品牌曝光与业绩增长&#xff0c;成为了众多企业面临的难题…

LeNet5模型搭建

文章目录 LeNet1 搭建模型2 训练模型3 测试模型3.1 预测一3.2 预测二 LeNet LeNet 诞生于 1994 年&#xff0c;是最早的卷积神经网络之一&#xff0c;并且推动了深度学习领域的发展。自从 1988 年开始&#xff0c;在许多次成功的迭代后&#xff0c;这项由 Yann LeCun 完成的开拓…

阿里云ECS之AMD实例

阿里云ECS之AMD实例 计算型实例规格族c8a关于AMD实例的使用AMD的应用场景 关于AMD实例&#xff0c;AMD实例也是云服务器ECS中的一种&#xff0c;AMD实例是阿里云新推出的重磅产品&#xff0c;基于AMD EPYCTM微处理器架构&#xff0c;该架构属于x86架构。目前已知的AMD实例规格族…

【RISC-V设计-09】- RISC-V处理器设计K0A之CIC

【RISC-V设计-09】- RISC-V处理器设计K0A之CIC 文章目录 【RISC-V设计-09】- RISC-V处理器设计K0A之CIC1.简介2.顶层设计3.端口说明4.代码设计5.仲裁代码6.总结 1.简介 核内中断控制器&#xff08;Core Interrupt Controller&#xff0c;简称CIC&#xff09;是管理和仲裁中断的…

SQL注入实例(sqli-labs/less-18)

0、初始页面 先使用brup爆破密码&#xff0c;账号admin&#xff0c;密码admin 1、确定闭合字符 判断注入点在post请求参数的User-agent处 闭合字符为单引号 2、爆库名 3、爆表名 4、爆列名 5、查询最终目标 在index.php中有这么一句 $insert"INSERT INTO security.uage…

MySQL基础——数据库客户端,数据库服务器,数据库(目录)

什么是数据库 具体&#xff1a;mysqld服务器结合内部的存储引擎所实现对数据库文件中的数据增删查改的一套方案 ——在磁盘或内存中存储特定结构组织的数据----在磁盘中存储的一套数据方案&#xff0c; 你给我字段或要求&#xff0c;我直接给你结果就行 整体&#xff1a;用户通…