Linux:认识Shell、Linux用户和权限

embedded/2025/1/18 19:03:58/

        谈起Linux,一般是在说区别于WindowsLinux操作系统,而Linux刚开始用来指Linux内核。值得一提的是,安卓底层也是Linux内核,而安卓系统又是区别于Linux的操作系统。

目录

一、Shell

为什么会有Shell

什么是Shell

Shell相关具体操作

二、Linux用户

三、Linux权限

1.用户

2.认识文件信息

3.修改权限的相关指令

4.删除&粘滞位


一、Shell

        狭义地说,操作系统仅仅是内核(kernel)的那部分,而我们平常说的操作系统,一般都是包括外壳(shell)那部分。

        如此说来,为什么会有Shell ,什么是Shell?

为什么会有Shell

        一部分原因:操作系统内核使用起来并不简单,且出于安全考虑,并不直接给用户来使用操作系统。

        主要原因:绝大数用户并不了解内核本身,为了便于用户体验操作,做成更接近于人类思维的Shell,由Shell和内核交互,才是最优解。

什么是Shell

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

Shell相关具体操作

        Shell本质是系统启动后,执行起来的一个程序,也就是进程,系统启动期间,一直存在(每一个用户分配一个进程)。

        对于用户的指令,Shell会进行识别:

        如果为错误操作,直接拦截,不反馈给内核。

        如果是不安全指令,会生成子进程,由子进程和内核交互,避免出现崩溃而终止主进程。

二、Linux用户

       Linux系统中将用户分为Root用户普通用户

  • 如果你是普通用户

1.当你要登录Root账户:需要键入Root账号密码

2.当你要登录其他普通用户:需要键入他人账号密码 

  • 如果你是Root账号:可以随意切换账号

三、Linux权限

1.用户

  • 对于用户分为:Root用户和普通用户
  • 根据用户对文件行为分为:拥有者(user,u),所属组(group,g)和Other(o)
  • 文件的权限操作有:r(读) w(写)x(执行)

  • 三位一组,从左至右,依次表示u,g,o对该文件所拥有的权限

        比如用户euto对于文件test.c目前有rw能力:

  • 可以用chmod修改u失去r权限

  • 也可以执行chmod添加回来:

  • 如果x权限,需要满足文件是可执行文件且有执行权限,两者缺一不可

        如果有x权限但不是可执行文件:

         如果没有x权限但是可执行文件:

        就算您是Root用户:

        Root用户没x权限情况下也会报Permission denied的。


2.认识文件信息

        第一列表示文件类型,虽然Linux不通过后缀来识别文件是哪种类型,但是推荐使用后缀,一是因为有些工具软件需要,二是我们需要通过后缀来便于可读。

  • d:文件夹/目录
  • -:普通文件:图片,源文件,txt,源文件等
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等连续读写)(Linux下一切皆文件)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备等随机读写)

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

3.修改权限的相关指令

1.chmod

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

2.chown

3.chgrp

4.umask:查看或修改文件掩码

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

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

5.file

辨识文件类型。

4.删除&粘滞位

        一个文件能否被删除,并不取决于文件本身的权限,而是取决于文件所处的目录,是否有w权限

        这样引发了一个问题:

        在“我”的目录下有root用户创建的文件。

        执行chmod来取消other的权限后,的的确确没有查看等权限了。

        但是,文件所处目录是属于“我”的,我可以把这个我没有权限的文件删除:

         这就是一个巨大的bug。于是,Linux系统就想,让每个用户互相独立,需要多用户协同的情况,就在根目录下的单独一个文件操作:/tmp。

        注意,这里other权限全部放开。

如你所见:

        这样,多用户共享一个目录。

        即使如此,other还是有权限删除你的文件的。

        于是,引入粘滞位来解决这个问题

        chmod u+t

        进一步限定权限的使用

        对于目录里的文件,只有Root文件拥有者、以及目录拥有者可以删除,这就是粘滞位


http://www.ppmy.cn/embedded/155019.html

相关文章

uni-app:动态禁止下拉列表展示情况(如果下拉列表数据为空就拦截下拉框展示,显示提示信息)

效果 如下图,需要当批号的下拉栏位存在数据的时候,才会展示下拉框,现在即使数据为空也会展示下拉框 修改后的效果,只出现提示,不展示下拉框 代码 1、页面展示 设置picker下拉框的外层点击事件,点击事件出…

Flask表单处理与验证

Flask是一个轻量级的Python框架,它通过扩展库提供了对表单处理与验证的支持。WTForms是一个流行的Flask扩展库,用于创建和验证Web表单。它提供了一种声明式的方法来定义表单结构和验证逻辑,使得表单处理更为简洁和优雅。下面,我们…

2013年IMO几何预选题第4题

在 △ A B C \triangle ABC △ABC 中, A B < A C AB < AC AB<AC. P P P, Q Q Q 是直线 A C AC AC 上的两个不同的点, 满足 ∠ P B A ∠ Q B A ∠ A C B \angle PBA \angle QBA \angle ACB ∠PBA∠QBA∠ACB, 且 A A A 在 P P P 与 C C C 之间. 已知在线段…

72_List列表原理

1.List列表介绍 在Redis的List数据类型中,元素以字符串形式存在,并按照它们被插入的顺序进行有序排列。List允许元素重复,即相同元素可以被多次添加到列表中。每个List的容量上限为2的32次方减1,,也就是4294967295个元素。我们可以添加一个新元素到List列表的头部(左边)…

后端程序打成 JAR 包的详细步骤及解释

在后端开发中&#xff0c;将程序打成 JAR 包是一个常见的操作&#xff0c;它可以方便程序的部署和分发。本文将详细介绍几种将后端程序打成 JAR 包的方法及其相应的解释&#xff0c;帮助你更好地完成项目的打包工作。 一、使用 Maven 构建工具&#xff08;适用于 Maven 项目&a…

计算机网络常见协议

目录 OSPF(Open Shortest Path First) NAT(Network Address Translation) ICMP (Internet Control Message Protocol) HTTPS&#xff08;SSL/TLS加密&#xff09; HTTPS协议 1. 对称加密 2. 非对称加密 3. 证书验证 4. 回顾https协议传输流程 HTTP TCP UDP 1. TCP&a…

01、kafka知识点综合

kafka是一个优秀大吞吐消息队列&#xff0c;下面我就从实用的角度来讲讲kafka中&#xff0c;“kafka为何有大吞吐的机制”&#xff0c;“数据不丢失问题”&#xff0c;“精准一次消费问题” 01、kafka的架构组织和运行原理 kafka集群各个节点的名称叫broker&#xff0c;因为kaf…

算法面试准备 - 手撕系列第七期 - MLP(利用FashionMNIST数据集)

算法面试准备 - 手撕系列第七期 - MLP(利用FashionMNIST数据集) 目录 算法面试准备 - 手撕系列第七期 - MLP(利用FashionMNIST数据集)FashionMINIST 图像分类原理解析1. 全连接的原理图2. 背景介绍3.引入相关库函数4. 数据预处理5. 模型设计6. 初始化网络&#xff0c;损失函数与…