《Linux-权限的理解、shell的理解和粘滞位》

news2024/9/21 19:54:38

       

目录

       

一、shell的理解

二、Linux权限

一、用户的引入

二、权限管理

一、什么是权限

二、Linux下的权限

三、视图展示

 四、文件类型

五、为什么gcc编译器编译.txt后缀的文件有问题?

六、修改权限

        一、chmod设置文件的访问权限

                一、基本使用

                二、八进制方案(访问所有人的权限)

        二、chown修改文件拥有者

        三、sudo对指令做提权操作

                为什么提权了还要输入密码?

        四、chgrp修改文件所属组

七、Linux规定下的目录和普通文件的起始权限以及umask修改默认权限掩码

八、为什么目录起始权限是777呐(答案在最后)?

九、file指令查看文件类型

三、粘滞位

一、背景

二、使用

三、作用

四、关于权限的总结?


一、shell的理解

        Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
        从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。

        shell变相的保护操作系统,比如张三是用户、王婆是shell、操作系统是美女。张三不怎么会说话,想跟美女处对象,王婆作为媒人帮助张三,张三把自己要说的传递给王婆,王婆再传递给美女,映照了人不能直接和操作系统对话,也就是在Linux使用中我们常见权限不够、不允许、是否确认访问等情况。

        二、Linux权限

一、用户的引入

        Linux下的用户分超级用户(root)、普通用户,超级用户可以在Linux系统下做任何事情不受约束,普通用户则受约束,超级用户的命令提示符是#,普通用户是$

        切换方式

普通用户:su 用户名

超级用户:su root(root可以省略)

扩展:su -        切换到root用户,且目录改为root的家目录

           su          切换到root用户,且目录仍然是当前目录

二、权限管理

一、什么是权限

        权限可以理解为文件本身的权限和文件对角色的限制(例如腾讯视频不是用来做OJ的,腾讯视频给VIP用户提供观看VIP电影的权限)

        文件是由文件属性和文件内容构成的,属性包含文件对角色的限制,文件本身的属性(类型、大小等)

二、Linux下的权限

        我的一篇《Linux-常见指令详解》一文中提到过Linux文件后缀与Windows不同,Liunx当中区分文件类型和文件后缀是没有关系的,仅仅是给用户做一个提示,后缀本质其实就是文件名的一部分,这正与文件的属性相对应,在shell里面可以输入ll 文件名,查看文件详细信息,前面会有一些字母,包含rwx-,r表示读,w表示写,x表示执行,-表示无(即顺序应当是rwx,但显示rw-,则表示没有x权限),ll详细信息前的2-10位的字符是三三为一组,第一个字符是文件类型

        从左往右,第一个表示文件的属性,后9个表示文件对角色的访问限制,而不是具体的人,角色从左往右分为文件的拥有者、所属组、其他人

三、视图展示

 四、文件类型

d:目录文件
-:普通文件(源代码、库文件、可执行程序、文档压缩包等等)
l:链接文件(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口(socket)文件

        其中前两个必须掌握。

五、为什么gcc编译器编译.txt后缀的文件有问题?

因为gcc等工具,对文件后缀可能有要求,跟Linux没有关系。

六、修改权限

一、chmod设置文件的访问权限

一、基本使用

        1.+增加权限 -去除权限

eg:chmod o-w 文件名

意为去除其他人写的权限

        2.也可以用逗号分隔继续

eg:chmod u-rwx,g-rwx,o-rwx 文件名

意为去除拥有者rwx权限,去除用户组rwx权限,去除其他人rwx权限

        3.=:向权限范围赋予权限代号所表示的权限

eg:chmod a=x /home/abc.txt

意为给所有人赋予x权限
        4.a:所有用户

        5.R -> 递归修改目录文件的权限

二、八进制方案(访问所有人的权限)

        理解为二进制的1为存在,二进制的0为没有,比如修改文件权限:

rwx rw- r--

111 110 100

7 6 4

chmod 764 文件名/目录名

二、chown修改文件拥有者

        chown [参数] 用户名 文件名

eg:chown 用户名 文件名

     chown -R 用户名 目录名

当然所有跨界操作都应当是文件的拥有者、所属组、超级用户可以执行命令,也可以使用sudo。

三、sudo对指令做提权操作

        在root用户下的/etc/sudoers可以编辑白名单列表,就是添加信任用户,sudo指令指不切换用户,使普通用户以root用户的身份执行对应的指令,短暂的提权。

为什么提权了还要输入密码?

        给受信任的用户,提供最少的执行障碍。

四、chgrp修改文件所属组

        与chmod、chown一样有-R选项,递归修改文件或目录的所属组。

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

七、Linux规定下的目录和普通文件的起始权限以及umask修改默认权限掩码

        目录:0777,文件:0666(这里是八进制表示形式,以0开头)

        可以通过umask修改起始权限

        umask可以查看或修改文件掩码 #umask     #umask 0000

        当然有时候创建文件和目录的起始权限不是上面那样,因为受到umask的影响,假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

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

        那么特殊情况会出起始权限-权限掩码就是最终权限,其实并不这样。

逻辑规则是:umask,默认去掉的位是1,要保留的位是0

                     ~umask,要去掉的位是0,要保留的位是1

八、为什么目录起始权限是777呐(答案在最后)?

一个问题,如果我们进入一个目录需要什么权限?

        r权限是查看目录里的文件,w是在目录里创建文件,x是进入目录,所以所有的目录被创建出来一般都需要x权限进入,如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容,如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

九、file指令查看文件类型

语法: file [选项] 文件或目录...
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容

三、粘滞位

一、背景

        搞一块公共的目录,方便所有人访问,进行读写执行,但是有个缺陷。

由于目录的权限rwx全有导致其中文件可以被删除,这是不科学的,可恶的目录,不让其他人看读写,其他人就有可能删除这个文件,受害人就是拥有者。

        所以粘滞位就担任了给目录设置防止互删文件的权限

二、使用

所以使用root用户:chmod +t 目录名

sudo chmod +t 目录名

注意:sudo提权操作是需要输入当前用户密码的

测试样例:使用root用户在根目录下创建一个目录,公共目录的属性值应当是777,即所有人都是rwx,chmod 777 目录名,使用普通用户1创建文件,设置other权限为0,使用普通用户2访问这个文件是不被允许的,但是可以删掉这个文件。

三、作用

该目录被设置成粘滞位,只能被root用户、文件的拥有者、目录的拥有者可以删除

四、关于权限的总结?

目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
 

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

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

相关文章

es的自动补全查询——DSL语句java代码实现

1、DSL语句 elasticsearch提供了Completion Suggester查询来实现自动补全功能。这个查询会匹配以用户输入内容开头的词条并返回。 为了提高补全查询的效率,对于文档中字段的类型有一些约束: 参与补全查询的字段必须是completion类型。 字段的内容一般…

SpringMVC的执行流程

文章目录1 初始化阶段2 匹配阶段3 执行阶段我们把整个流程分成三个阶段初始化阶段匹配阶段执行阶段 1 初始化阶段 在 Web 容器第一次用到 DispatcherServlet 的时候,会创建其对象并执行 init 方法 init 方法内会创建 Spring Web 容器,并调用容器 refre…

阿里十年技术沉淀|深度解析百PB级数据总线技术

云原生场景下数据总线需求场景及挑战 数据总线简介 数据总线作为大数据架构下的流量中枢,在不同的大数据组件之间承载着数据桥梁的作用。通过数据总线,可以实时接入来自服务器、K8s、APP、Web、IoT/移动端等产生的各类异构数据,进行统一数据…

【java 新特性】java8新特性

核心内容 lambda 函数编程 在Java世界里面,面向对象还是主流思想,对于习惯了面向对象编程的开发者来说,抽象的概念并不陌生。面向对象编程是对数据进行抽象,而函数式编程是对行为进行抽象。现实世界中,数据和行为并…

【机器学习实战】使用SGD、随机森林对MNIST数据集实现多分类(jupyterbook)

1. 获取数据集并重新划分数据集 # 获取MNIST数据集 from sklearn.datasets import fetch_openml mnist fetch_openml(mnist_784, version1, cacheTrue, as_frameFalse)# 查看测试器和标签 X, y mnist[data], mnist[target] X_train, X_test, y_train, y_test X[:60000], X[…

Nuxt3使用echart,使用中国地图

目录 第一步安装echart 第二步配置plugins 第三步使用 例如使用饼状图 例如使用中国地图 第一步安装echart npm install echarts --save 第二步配置plugins 在plugins创建echarts.ts文件并写入下面内容 import * as echarts from echartsexport default defineNuxtPlugin((…

springboot事件监听机制二:基本工作原理

前言 这是继《springboot事件监听机制一:实战应用》第二篇,知其然,当然还要知其所以然,深入的源码里面探寻一下这一有套机制的工作原理。spring生态很茂盛,这里不会站太高去分析这个问题,大扯spring的一些原…

优秀的项目跟踪管理软件有哪些?

国内外优秀的项目跟踪管理软件有:1、软件项目跟踪管理PingCode;2、通用项目跟踪管理Worktile;3、小型团队项目跟踪管理Asana;4、基于桌面的项目跟踪软件Microsoft Project;5、适用所有类型项目的跟踪软件Clickup&#…

[ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2018-16509

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

Cellobiose-PEG-DBCO 纤维二糖-聚乙二醇-二苯基环辛炔,DBCO-PEG-纤维二糖

Cellobiose-PEG-DBCO 纤维二糖-聚乙二醇-二苯基环辛炔,DBCO-PEG-纤维二糖 中文名称:纤维二糖-二苯基环辛炔 英文名称:Cellobiose-DBCO 别称:二苯基环辛炔修饰纤维二糖,二苯基环辛炔-纤维二糖 PEG分子量可选&…

2023年湖北安全员ABC报名时间和考试时间是什么时候?甘建二

2023年湖北安全员ABC报名时间和考试时间是什么时候? 安全员ABC考试和报名时间,12月份安全员ABC考试时间是12月底,12月份湖北安全员ABC报名是现在开始报名了,目前报名入口已经开通需要开始报名了。 2023年湖北安全员ABC报名时间&am…

人工智能历史上的重要一步:ChatGPT影响到谷歌地位?

AI神器ChatGPT 火了。 能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住,它就是OpenAI刚刚推出的——ChatGPT。 有脑洞大开的网友甚至用它来设计游戏:先用ChatGPT生成游戏设定,再用Midjourney出图&…

如何让 useEffect 支持 async/await?

大家在使用 useEffect 的时候,假如回调函数中使用 async...await... 的时候,会报错如下。 看报错,我们知道 effect function 应该返回一个销毁函数(return返回的 cleanup 函数),如果 useEffect 第一个参数传…

[毕业设计]C++程序类内聚度的计算与存储

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

651页23万字智慧教育大数据信息化顶层设计及智慧应用建设方案

目录 一、 方案背景 1.1 以教育现代化支撑国家现代化 1.2 教育信息化是教育现代化重要内容和标志 1.3 大数据驱动教育信息化发展 1.4 政策指导大数据推动教育变革 1.5 教育大数据应用生态服务教育现代化 二、 建设需求 2.1 地区教育系统亟待进行信息共享、系统融合 2.2…

L2正则线性回归(岭回归)

岭回归 数据的特征比样本点还多,非满秩矩阵在求逆时会出现问题 岭回归即我们所说的L2正则线性回归,在一般的线性回归最小化均方误差的基础上增加了一个参数w的L2范数的罚项,从而最小化罚项残差平方和 简单说来,岭回归就是在普通…

FreeRTOS基础知识

目录 1.任务调度器简介 1.1抢占式调度举例 1.2时间片调度举例 2.任务状态 3.总结 1.任务调度器简介 调度器就是使用相关的调度算法来决定当前需要执行哪个任务。 FreeRTOS一共支持以下三种任务调度方式: FreeRTOS调度方式抢占式调度主要是针对优先级不同的任务…

vector深度剖析及模拟实现

vector模拟实现🏞️1. vector的扩容机制🌁2. vector迭代器失效问题📖2.1 insert导致的失效📖2.2 erase导致的失效🌿3. vector拷贝问题🏜️4. 模拟实现vector🏞️1. vector的扩容机制 #include&…

SQL快速入门、查询(SqlServer)[郝斌SqlServer完整版]

文章目录SQL学前导图一 、基本信息1 相关名词数据库相关基本概念:字段、属性、记录(元祖)、表、主键、外键2 基本语句3 约束:主键约束、外键约束、check约束、default约束、唯一约束二、查询1 计算列2 distinct(去重)3 between4 i…

生产跟踪是生产控制的基础,其主要功能有哪些?

生产跟踪是生产控制的基础,只有对生产的过程全面了解,才能掌握和控制生产的执行情况,所以生产跟踪模块在制造执行系统中一种起着举足轻重的作用。生产跟踪,不单单是对生产过程进行监控和记录数据,还需要将各个生产环节…