【Linux】命令和权限

news2025/4/8 6:10:09

目录:

一、shell命令及运行原理

(一)什么是外壳

(二)为什么要有外壳

(三)外壳怎么工作的

二、Linux权限的概念

(一)Linux的文件类型

(二)Linux用户(root/普通用户)

(三)权限的理论理解

(四)权限的操作


正文:

一、shell命令及运行原理

以下是登入shell时呈现给我们的整个命令行:

下面我将用一个简图简述一下shell与操作系统之间的关系:

广义上对于普通用户来说拿到一台电脑认为操作系统是由:操作系统内核、图形界面(应用图标)和系统默认给我们安装的一些软件(WPS等)组成。而对于程序员而言,我们理解的操作系统主要指的是内核程序。

而我们现在谈的shell在整个操作系统中属于外壳程序,什么是外壳程序?由于普通用户看不懂Linux内核的代码,无法直接编写二进制代码操作内核,所以必须得提供一个外壳程序辅助用户使用操作系统。像Windows的外壳就是整个图形化界面,用户看着图标使用电脑,而Linux操作系统的外壳程序是shell,当我们登入shell通过命令行输入命令。

接下来我继续通过一个故事来帮助大家理解~

(一)什么是外壳

故事一:假设你叫张三,你爹是你们村的村长,现在你大学毕业回到村里。你爹这时候说:儿啊,老大不小了赶紧找个对象吧,而你心里一直喜欢着隔壁村小学同班的翠花,这时你跟你爹说喜欢人家,但是自己内心不好意思和人家翠花直接表达、社恐,于是你爹就为你找了个媒婆替你去翠花家说亲。

媒婆接了任务后就去到人家家里,说隔壁村的张三好啊,人家喜欢你。翠花想了想隔壁村的谁啊,原来是小学同学,但是翠花不喜欢人家,对媒婆说:你回去告诉他我不喜欢他,这时媒婆就把翠花不喜欢你的信息给你返回。

在这个故事中,媒婆扮演的角色是shell外壳,你是普通用户,翠花则是操作系统。普通用户无法直接访问操作系统所以需要外壳程序的辅助。用户将需求(指令)交给shell,shell把需求(指令)提交给OS让它执行,执行失败后通过shell反馈给用户,打印失败结果和原因。

综上所述:外壳程序是一个命令行解释器。

(二)为什么要有外壳

故事二:你还不死心要用真心感化翠花,让媒婆再去,媒婆没有办法再去人家家里时看到翠花有相好的了,现在进去不就尴尬了还拆散人家,于是媒婆没进翠花家就告诉你你们不可能,换一个吧。

此时外壳程序判断出你的请求是非法访问,直接给你拦截不让操作系统执行,返回错误。这种行为间接保护了操作系统。

外壳程序的存在:保护了操作系统,方便了用户操作,减少用户使用操作系统的成本。

(三)外壳怎么工作的

故事三:你对翠花死缠烂打,而媒婆又帮不了你,但你爹是村长又不能不混了,于是媒婆开了家婚介所公司,招收实习生让实习生去帮你说亲,要是不成功就是实习生的能力还不够给你再换一个跟媒婆没关系了,不能骂媒婆。

媒婆是shell程序而实习生是shell的子进程,外壳程序的工作是:shell的子进程来进行解释执行的。

Linux中使用的外壳程序严格意义上是bash,这和shell什么区别呢?shell是所有种类外壳程序的统称,bash是具体一种外壳程序。

二、Linux权限的概念

(一)Linux的文件类型

Linux通过属性列区分不同文件。ls -l查看最前面的那个属性标识符,我们最常见到的是d和-

而Windows以文件后缀区分,例如.txt、.jpg等,虽然Linux不以后缀进行区分不代表用户不可以使用后缀。

除了常见的以上两个类型外,以下还有很多不同的标识表示不同类型,有兴趣可以自行了解学习~

(二)Linux用户

Linux是多用户操作系统,超级管理员的命令提示符是“#”,普通用户的命令提示符是“$”。

Linux下只能有一个root(超级管理员)可以有多个普通用户。

如何创建普通用户?

root/普通用户之间的切换命令:su

(1)普通用户->管理员

需要输入管理员root的密码,如果不知道密码无法切户,若切换成功一切操作将以root身份进行

此时我们输入pwd命令发现,虽然su root已经切换成管理员但是路径还是普通用户没有改变

所以su root只是身份的切换不更改工作目录,如果要实现root重新登入,工作路径和身份都在root下使用命令su - root

(2)root->普通用户

可以直接su 普通用户,不需要任何密码验证

普通用户和普通用户之间不能进行切换操作!

(3)不切换身份,拥有管理员权限:sudo

只要在任何你想执行的语句前加sudo然后输入你自己的密码,直接提权执行

这时候你可能会问,都可以这么牛了root还有什么用?

别急,你可以试着执行一下sudo,输入密码后发现执行失败!原因是你要执行提权操作时得先找root让它把你这个用户加入sudoers的白名单中才可以使用。

命令行执行:nano /etc/sudoers 找到下图所在位置,把普通用户添加进系统信任列表,相对于Linux系统中的用户白名单。

(三)权限的理论理解

为什么Linux存在权限?

其实Linux是很爱护自己的羽毛的,它不允许不认识的用户随随便便操作系统,所以就通过很多权限来保护自己,只有符合某种权限的用户才可以执行对应操作。

在现实生活中:可以因为你是爱奇艺、优酷的VVIP就去其软件上写代码吗?答案肯定不行,看电影的不能用来写代码;而你能在爱奇艺上指定看某款电影是因为你买了爱奇艺的VVIP,它给VVIP播放付费电影。

所以,权限=人+事物本身的属性。Linux下一切皆文件,文件权限=用户+文件属性,文件属性=是否允许用户进行对该文件的读、写、执行(r/w/x)

Linux如何查看文件的权限呢?

可以看到对应角色权限那块固定由9个字符组成,它们三个字符为一组表示该角色是否有读写执行的权利,可想而知9个字符对应着三种角色:拥有者、所属组、其他。

拥有者:表示创建文件的用户

其他:表示除拥有者以外的人

所属组:拥有者的附属,允许执行其他以外的操作

Linux允许用户同时既是拥有者也是所属组,权限永远约束的是你扮演的这个角色而不是你本人,而角色需要具体的人来扮演!

因此,权限=角色+文件的权限属性(r/w/x)

(四)权限的操作

权限=角色+文件的权限属性,所以对权限的操作转换为对更改拥有者和文件属性的操作!!

(1)更改文件的权限属性

方法一:chmod u/g/o [+-] rwx 文件名

u:表示拥有者,对应除第一个外的前三个字母,【+-】修改后拥有者没有读权限

g:表示所属组

o:表示other其他

方法二:chmod 八进制 文件名

(2)更改角色

chown + 新的拥有者 + 文件名

普通用户修改失败,因为普通用户在执行修改文件拥有者的操作时,被要求必修对该指令提权成root。可以su切换root再执行,或者前面加sudo。

(3)目录(文件夹)的权限

我们上面一直谈的是对文件权限的操作,那要进入一个目录需要什么权限呢?需要x权限!!!

在一个目录中

r:表示是否运行用户能查看该目录下的信息,如果对其他没有r权限,除拥有者和所属组以外的人ls -l 无法执行指令。

w:表示运行用户能否能在该目录下创建/删除文件

x:表示运行用户能否cd进入该目录

目录的x与文件的x权限是不一样的,一个可执行文件=可执行权限+本身能执行

(4)为什么新建完看到的目录权限是这样的?

每次mkdir新建一个目录之后,我们看到的缺省权限总是上图这般格式,为什么呢?

因为由umask权限掩码决定,默认起始权限为0002

普通文件:起始权限:666        目录文件:起始权限:777

权限的计算方法是:过滤掉在权限掩码中出现的权限

最终权限=起始权限 去掉 umask ==> 起始权限二进制 & (~umask)

计算:

手动更改权限掩码:

(5)粘滞位

这个概念为了防止普通用户在公共目录下随便乱删文件

先给出一个结论:普通用户的家目录只能自己和root能进入,当普通用户在家目录下新建一个文件想实现共享是不可能的。所以只能在root用户的家目录下新建一个目录,允许其他人随意进入这个目录中增删查改文件及共享数据,而由于是共享状态,即使不是自己创建的文件也可以被随意删除,为了避免这一状况可以设置粘滞位,限制只有文件拥有者和root能删除文件,其他人删不掉!

当⼀个⽬录被设置为"粘滞位"(⽤chmod +t),则该⽬录下的⽂件只能由
1. 超级管理员删除
2. 该⽬录的所有者删除
3. 该⽂件的所有者删除

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

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

相关文章

22.OpenCV轮廓匹配原理介绍与使用

OpenCV轮廓匹配原理介绍与使用 1. 轮廓匹配的基本概念 轮廓匹配(Contour Matching)是计算机视觉中的一种重要方法,主要用于比较两个轮廓的相似性。它广泛应用于目标识别、形状分析、手势识别等领域。 在 OpenCV 中,轮廓匹配主要…

深入解析AI绘画技术背后的人工智能

在当今数字艺术领域,AI绘画作为一种新兴艺术形式,正迅速吸引着越来越多的创作者与爱好者。它不仅推动了艺术创作的边界,同时也改变了我们对创作与美的理解。本文将深入探讨AI绘画所依赖的人工智能技术,并分析其背后的原理与应用。…

browser-use开源程序使 AI 代理可以访问网站,自动完成特定的指定任务,告诉您的计算机该做什么,它就会完成它。

一、软件介绍 文末提供程序和源码下载 browser-use开源程序使 AI 代理可以访问网站,自动完成特定的指定任务,浏览器使用是将AI代理与浏览器连接的最简单方法。告诉您的计算机该做什么,它就会完成它。 二、快速开始 使用 pip (Py…

java虚拟机---JVM

JVM JVM,也就是 Java 虚拟机,它最主要的作用就是对编译后的 Java 字节码文件逐行解释,翻译成机器码指令,并交给对应的操作系统去执行。 JVM 的其他特性有: JVM 可以自动管理内存,通过垃圾回收器回收不再…

2025数字中国初赛wp

一,取证与溯源 镜像文件解压密码:44216bed0e6960fa 1.运维人员误删除了一个重要的word文件,请通过数据恢复手段恢复该文件,文件内容即为答案。 先用R-stuido软件进行数据恢复 得到 打开重要文件.docx全选发现有一条空白的被选中…

c#和c++脚本解释器科学运算

说明: 我希望用c#和c写一个脚本解释器,用于科学运算 效果图: step1: c# C:\Users\wangrusheng\RiderProjects\WinFormsApp3\WinFormsApp3\Form1.cs using System; using System.Collections.Generic; using System.Data; using System.Tex…

青蛙吃虫--dp

1.dp数组有关元素--路长和次数 2.递推公式 3.遍历顺序--最终影响的是路长&#xff0c;在外面 其次次数遍历&#xff0c;即这次路长所有情况都更新 最后&#xff0c;遍历次数自然就要遍历跳长 4.max时时更新 dp版本 #include<bits/stdc.h> using namespace std; #def…

LINUX 5 cat du head tail wc 计算机拓扑结构 计算机网络 服务器 计算机硬件

计算机网络 计算机拓扑结构 计算机按性能指标分&#xff1a;巨型机、大型机、小型机、微型机。大型机、小型机安全稳定&#xff0c;小型机用于邮件服务器 Unix系统。按用途分&#xff1a;专用机、通用机 计算机网络&#xff1a;局域网‘、广域网 通信协议’ 计算机终端、客户端…

ModuleNotFoundError: No module named ‘pandas‘

在使用Python绘制散点图表的时候&#xff0c;运行程序报错&#xff0c;如图&#xff1a; 报错显示Python 环境中可能没有安装 pandas 库&#xff0c;执行pip list命令查看&#xff0c;果然没有安装pandas 库&#xff0c;如图&#xff1a; 执行命令&#xff1a;python -m pip in…

【教程】MacBook 安装 VSCode 并连接远程服务器

目录 需求步骤问题处理 需求 在 Mac 上安装 VSCode&#xff0c;并连接跳板机和服务器。 步骤 Step1&#xff1a;从VSCode官网&#xff08;https://code.visualstudio.com/download&#xff09;下载安装包&#xff1a; Step2&#xff1a;下载完成之后&#xff0c;直接双击就能…

Unet网络的Pytorch实现和matlab实现

文章目录 一、Unet网络简介1.1 输入图像1.2 编码器部分&#xff08;Contracting Path&#xff09;1.3 解码器部分&#xff08;Expanding Path&#xff09;1.4 最后一层&#xff08;输出&#xff09;1.5 跳跃连接&#xff08;Skip Connections&#xff09; 二、Unet网络的Pytorc…

【合新通信】相控阵雷达RFoF方案的应用

一、相控阵雷达为何需要RFoF&#xff1f; 核心需求驱动 分布式部署&#xff1a;相控阵雷达&#xff08;AESA/PESA&#xff09;的T/R模块需分散布局&#xff08;如舰载雷达阵面、卫星载荷&#xff09;&#xff0c;传统同轴电缆导致重量和损耗剧增。高频段挑战&#xff1a;X/Ku/…

原理图输出网表及调入

一、输出网表操作步骤 &#xff08;1&#xff09;选中.dsn文件&#xff0c;选者N或进入tools下拉列表选择Creat Netlists &#xff08;2&#xff09;导出网表后的文件 二、网表的导入 &#xff08;1&#xff09;执行菜单命令“File-Import-Logic/netlist”&#xff0c;将原理…

TDengine JAVA 语言连接器

简介 本节简介 TDengine 最重要且使用最多的连接器, 本节内容是以教科书式方式列出对外提供的接口及功能及使用过程中要注意的技术细节&#xff0c;大家可以收藏起来做为今后开发 TDengine 的参考资料。 taos-jdbcdriver 是 TDengine 的官方 Java 语言连接器&#xff0c;Java…

【NLP 55、实践 ⑬ LoRA完成NER任务】

目录 一、数据文件 二、模型配置文件 config.py 三、数据加载文件 loader.py 1.导入文件和类的定义 2.初始化 3.数据加载方法 代码运行流程 4.文本编码 / 解码方法    ① encode_sentence()&#xff1a; ② decode()&#xff1a; 代码运行流程 ③ padding()&#xff1a; 代码…

【蓝桥杯】Python大学A组第十五届省赛

1.填空题 1.1.拼正方形 问题描述 小蓝正在玩拼图游戏,他有个的方块和个的方块,他需要从中挑出一些来拼出一个正方形。 比如用个和个的方块可以拼出一个的正方形;用个的方块可以拼出一个的正方形。 请问小蓝能拼成的最大的正方形的边长为多少。 import math # 2*2的个数 a =…

小球反弹(蓝桥杯C语言)

有一长方形&#xff0c;长为 343720343720 单位长度&#xff0c;宽为 233333233333 单位长度。在其内部左上角顶点有一小球 (无视其体积)&#xff0c;其初速度如图所示且保持运动速率不变&#xff0c;分解到长宽两个方向上的速率之比为 dx:dy15:17dx:dy15:17。小球碰到长方形的…

HarmonyOS-ArkUI Ability进阶系列-UIAbility与各类Context

UIAbility及相关类关系 一个模块编译的时候会出一个HAP包&#xff0c; 每一个HAP包在运行时都对应一个AbilityStage。 AbilityStage持有一个AbilityStageContext一个APP&#xff0c; 有时候会有很多个HAP包&#xff0c; 至少一个。 一个APP运行时&#xff0c;对应的是我们的App…

剑指Offer(数据结构与算法面试题精讲)C++版——day4

剑指Offer&#xff08;数据结构与算法面试题精讲&#xff09;C版——day4 题目一&#xff1a;和为k的子数组题目二&#xff1a;0和1个数相同的子数组题目三&#xff1a;左右两边子数组的和相等 题目一&#xff1a;和为k的子数组 结合前面着重阐述的双指针法这一经典的算法技巧&…

WebRTC技术简介及应用场景

写在前面 本文是参考稀土掘金的文章,整理得出,版权归原作者所有!参考链接请点击跳转 WebRTC&#xff08;Web Real-Time Communication&#xff09; 是一项开源技术&#xff0c;允许浏览器和移动应用直接进行实时音视频通信和数据传输&#xff0c;无需安装插件或第三方软件。它…