Linux——shell原理和文件权限

1.shell原理

        在我们使用云服务器时,需要通过shell进行使用,而shell则是一种外壳程序。

        

        我们提到过,大部分的指令实际上就是文件,当用户需要执行某种功能时,由于用户不擅长和操作系统直接交互(操作复杂),并且出于保护操作系统的目的(防止不合法请求交给操作系统),用户不直接使用操作系统内核,而是通过shell外壳程序来进行处理。

        外壳程序(shell程序)介于用户和操作系统之间的软件,也就是我们所见的命令行解释器。它可以将用户输入的命令进行检查并翻译给核心,而核心的处理结果也会通过shell翻译给用户。shell在执行时会创建子进程,来帮助用户进行命令行解释。bash是我们在centos7中所使用的具体的一种shell,shell作为命令行解释器是Linux的基本使用访问形式,就像是GUI图形化界面对于windows一样。

2.Linux权限

        权限,在汉语词汇中的意思是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。可以发现,权限的定义中具有两个对象,分别是角色和事物,不同的角色对于不同的事物具有的权力不同。在Linux中,权限也就是根据用户的不同,对具体的文件具有不同的访问权限。

2.1 Linux的用户

        在Linux中可以粗略的将用户分为两类:①root(超级用户、超级管理员),它的命令行提示符是#,不受到权限约束。②普通用户,它的命令行提示符是$。

2.1.1 用户转换——su

        因为存在着两种用户,所以会面临着用户身份的转换。su指令可以进行身份的变化。通过 su 可以将身份由普通用户变化为root身份,需要输入root的密码。而 su <用户名> 可以将身份由root变为普通用户,无需密码。

2.1.2 指令提权——sudo

        因为root和普通用户的权限不同,在某些情况下普通用户需要更多权限来执行一条指令,那么这个时候就可以使用sudo来进行指令提权。如:sudo touch normal.txt 就是以root的身份创建一个文件。

        sudo提权需要输入普通用户的密码,这是因为实际上并不是所有用户都可以进行指令提权,只有处在root白名单中的用户才可以进行指令提权,白名单实际上是一个只有root可以访问的文件,当root信任某一个用户后可以将其加入白名单,这样这个用户就被允许进行sudo指令提权了。

2.2 Linux的权限

2.2.1 Linux的角色

        站在一个目录或者文件的视角来看,实际上访问者可以分为三类,也就是三种角色:①拥有者:文件或目录的所有者;②所属组:文件或目录的所有者所在的组;③other:除了文件的所属组以外的用户。Linux管理权限正是针对这三种角色进行管理。

        以下是查看文件详细信息的各部分含义:

2.2.2 文件类型

        Linux不通过文件的后缀来区分文件类型,而是通过文件属性中的标识。我们在上一个图片中已经看到了文件类型的表示:

-:普通文件,包括文本文件、可执行文件、库等;

d:目录文件;

b:块设备文件,如磁盘;

c:字符设备文件,如显示器;

P:管道文件;

I:链接文件,也就是快捷方式。

        虽然Linux不使用后缀区分文件类型,但是我们还是应该使用后缀名,不仅是因为便于自己使用,而且因为部分工具、程序需要根据后缀名进行区分。

2.2.3 文件的权限

        对于普通文件,rwx不难理解,分别是可读、可写、可执行。而对于目录文件,rwx的功能则是:r,查看目录内文件信息的权限;w,在目录内创建、修改、删除的权限(可以看到删除文件与这个文件的权限无关,而取决于其所在目录的写权限);x,进入目录的权限。

        我们可以看到rwx权限实际上可以用三个二进制数字来表示,如r-x可以表示为101,也就是八进制的5,所以我们可以使用三个八进制数字来表示一个文件的三组的三个权限。

2.2.3.1 修改权限——chmod

        在学会权限的含义只后,就要试着修改权限,修改权限使用到的指令是chmod指令。

chmod u±rwx , g±rwx , o±rwx , a±rwx 文件名

含义就是修改文件的u(拥有者)、g(所属组)、o(other)的权限,增加(+)或去除(-)rwx的若干种权限。

除此之外,也可以使用我们刚才所说的三个八进制数字的方式修改权限:

chmod xxx(八进制数) 文件名

 

2.2.3.2 修改拥有者和所属组——chown

chown/chgrp 用户 文件名

修改文件的拥有者/所属组为对应的用户。需要指令提权。

        需要注意的是,所属组的出现是为了方便权限管理,相当于提供了除了拥有者一个人外的其他人的访问身份,同时有排除了无关人员other的干扰。

        Linux对于身份的识别只进行一次,换言之就是当用户既是拥有者又是所属组时,Linux只认定拥有者的权限,所以尽管所属组有权限但是拥有者没有,同样无权执行对应操作。

2.2.3.3 掩码——umask

        对于新创建的文件,其权限是文件类型和掩码共同决定的。普通文件的起始权限为0666,目录文件的起始权限为0777。可以通过命令行输入umask来查看掩码,而最终初始化的权限=文件对应的起始权限&(~umask),也就是异或运算。

        因此对于0002的掩码,创建的普通文件的权限为0664,目录文件的权限为0775。

        可以使用umask+修改后的掩码来对其进行修改。

2.2.3.4 粘滞位

chmod +t 目录名

        通过这样的方法可以为目录设置粘滞位,即可以限制删除操作。对于目录中的文件,只有root、目录拥有者、文件拥有者可以删除,其他角色不具有该权限。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s部署单机版mysql8

一、创建命名空间 # cat mysql8-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: mysql8labels:name: mysql8# kubectl apply -f mysql8-namespace.yaml namespace/mysql8 created# kubectl get ns|grep mysql8 mysql8 Active 8s二、创建mysql配…

论文学习——使用基于多项式拟合的预测算法求解动态多目标问题

论文题目&#xff1a;Solving dynamic multi-objective problems using polynomial fitting-based prediction algorithm 使用基于多项式拟合的预测算法求解动态多目标问题&#xff08;Qingyang Zhang , Xiangyu He,Shengxiang Yang , Yongquan Dong , Hui Song , Shouyong Ji…

配置WLAN 示例

规格 仅AR129CVW、AR129CGVW-L、AR109W、AR109GW-L、AR161W、AR161EW、AR161FGW-L、AR161FW、AR169FVW、AR169JFVW-4B4S、AR169JFVW-2S、AR169EGW-L、AR169EW、AR169FGW-L、AR169W-P-M9、AR1220EVW和AR301W支持WLAN-FAT AP功能。 组网需求 如图1所示&#xff0c;企业使用WLAN…

JDeveloper 12C 官网下载教程

首先、我们要登录Oracle官网 Oracle 甲骨文中国 | 云应用和云平台 登录进去如果不是中文可以点击右上角带有国旗的图标就行更改&#xff0c;选择一个你能看懂的文字。 然后&#xff0c;点击“资源”—点击“开发人员下载” 然后&#xff0c;点击“开发工具” 这里有很多工具可…

【设计模式】【行为型模式】【责任链模式】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录…

Python协作运动机器人刚体力学解耦模型

&#x1f3af;要点 &#x1f3af;腿式或固定式机器人模型 | &#x1f3af;网格、点云和体素网格碰撞检测 | &#x1f3af;正反向运动学和动力学 | &#x1f3af;机器人刚体力学计算 | &#x1f3af;编辑参考系姿势和路径 | &#x1f3af;软件接口实体机器人模拟 | &#x1f3a…

奇葩公司又发微博了,网友表示“乐”

多益网络 近日&#xff0c;多益网络官方微博发帖&#xff0c;公然表示对法院仲裁结果不服&#xff0c;认为劳动法有极多问题。 大家不要看微博内容似乎振振有词&#xff0c;极有可能只是多益网络单方面的选择性表达&#xff0c;毕竟多益网络的臭名早就家喻户晓。 况且对前员工直…

车载资料分享中:硬件在环、canoe、UDS诊断、OTA升级、TBOX测试

每日直播时间&#xff1a; 周一到周五&#xff1a;20&#xff1a;00-23&#xff1a;00 周六与周日&#xff1a;9&#xff1a;00-17&#xff1a;00 直播内容&#xff1a;&#xff08;车厂一比一测试&#xff09; HIL&#xff08;硬件在环&#xff09;测试、UDS功能诊断、UDS自动…

一首歌的时间 写成永远

大家好&#xff0c;我是秋意零。 就在&#xff0c;2024年6月20日。我本科毕业了&#xff0c;之前专科毕业挺有感触&#xff0c;也写了一篇文章进行记录。如今又毕业了&#xff0c;还是写一篇文章记录吧&#xff01;&#xff01; 专科毕业总结&#xff1a;大学三年总结&#xf…

使用ElementUI组件库

引入ElementUI组件库 1.安装插件 npm i element-ui -S 2.引入组件库 import ElementUI from element-ui; 3.引入全部样式 import element-ui/lib/theme-chalk/index.css; 4.使用 Vue.use(ElementUI); 5.在官网寻找所需样式 饿了么组件官网 我这里以button为例 6.在组件中使用…

利用深度学习模型进行语音障碍自动评估

语音的产生涉及器官的复杂协调&#xff0c;因此&#xff0c;语音包含了有关身体各个方面的信息&#xff0c;从认知状态和心理状态到呼吸条件。近十年来&#xff0c;研究者致力于发现和利用语音生物标志物——即与特定疾病相关的语音特征&#xff0c;用于诊断。随着人工智能&…

电信NR零流量小区处理

【摘要】随着目前网络建设逐步完善&#xff0c;5G用户的不断发展&#xff0c;针对零流量小区的分析及处理存在着必要性&#xff0c;零流量小区的出现既是用户分布及行为的直观体现&#xff0c;也是发展用户的一个指引&#xff0c;同时也能发现设备的一些故障。一个站点的能够带…

飞书API 2-3:如何使用 API 创建数据表,解放人工?

一、引入 作为飞书多维表的深度使用者&#xff0c;经常需要将一些数据库的数据同步到多维表上&#xff0c;在数据写入之前&#xff0c;一般需要新建数据表和字段。当通过网页端界面新建字段时&#xff0c;如果字段少&#xff0c;还能接受手动一个个创建&#xff0c;不过一旦字…

C++字体库开发

建议根据字体需求&#xff0c;多个组合使用。高度定制可基于freeTypeharfbuzz基础库完成。 GitHub - GNOME/pango: Read-only mirror of https://gitlab.gnome.org/GNOME/pango GitHub - googlefonts/fontview: Demo app that displays fonts with a free/libre/open-source …

更好的方法_交叉观察器API

交叉观察器&#xff08;Intersection Observer&#xff09;API 是一个强大的工具&#xff0c;可以用来检测元素是否进入视口或从视口移出。我们可以利用这个 API 来实现粘贴式导航&#xff08;也称为粘性导航&#xff09;&#xff0c;即在用户滚动页面时&#xff0c;导航栏会在…

方法的用法

一.简介 目前为止我给出的所有的案例都是将代码放在main方法中&#xff0c;就会产生一些问题&#xff1a; 代码冗长&#xff0c;不利于维护变量过多&#xff0c;想不出那么多的变量名没有重用性 那么该如何解决呢&#xff1f; 我们可以编写功能性的代码块&#xff0c;来被ma…

Android自动化测试实践:uiautomator2 核心功能与应用指南

Android自动化测试实践&#xff1a;uiautomator2 核心功能与应用指南 uiautomator2 是一个用于Android应用的自动化测试Python库&#xff0c;支持多设备并行测试操作。它提供了丰富的API来模拟用户对App的各种操作&#xff0c;如安装、卸载、启动、停止以及清除应用数据等。此外…

基于索尼基于索尼Spresense的眼睛跟随平台中两个模型的对比

1.模型一(现在使用的) 这个模型是一个简单的神经网络&#xff0c;由三个主要组件组成&#xff1a;输入层、一个全连接层&#xff08;Affine层&#xff09;、一个Sigmoid激活函数层和一个Binary Cross Entropy损失层。 以下是每个组件的说明&#xff1a; Input 层&#xff1a;这…

计算机专业的概念需要拓宽|终身学习之旅利:用FlowUs打造个性化学习记录知识库

计算机相关专业长期以来一直是热门选择&#xff0c;这主要得益于技术的快速发展和广泛的应用场景。随着AI技术的不断进步&#xff0c;这一趋势在未来几年内仍有望持续。以下是从不同角度对这个问题的分析&#xff1a; 从AI发展的角度&#xff1a; 技术革新&#xff1a;AI技术…

axios的底层ajax,XMLHttpRequest原理解释及使用方法

定义 ajax全称asychronous JavaScript and XML 意思是异步的 JavaScript和xml&#xff0c; 也就是通过javascript创建XMLHttpRequest &#xff08;xhr&#xff09;对象与服务器进行通信 步骤 创建实例对象&#xff0c;初始请求方法和url&#xff0c;设置监听器监听请求完成…