Linux中的权限问题【详解】

news2024/11/23 3:03:16

shell命令以及运行原理

Windows以图形化界面为主要交互方式,简单高效,易于日常使用。Linux以命令行界面为主要交互方式,操作相较windows,mac来说比较困难一些,但linux也有向着图形化界面努力的桌面系统,例如ubuntu。Windows和Linux的交互方式虽然不同,但其本质上却是一样,图形化界面和命令行界面都是为了让用户进行相关操作,而图形化界面和命令行界面就是我们所说的 " 外壳程序 "。

在这里插入图片描述

Linux严格意义上来说是一个操作系统,我们称之为 "核心 (kernel) ",但我们一般用户不能直接使用kernel,而是通过kernel的 “外壳程序”,也就是所谓的Shell,来与 kernel 沟通。

Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
1.将使用者的命令翻译给核心(kernel)处理。
2.同时,将核心的处理结果翻译给使用者

shell运行原理:
1.创建子进程,让子进程进行命令行解释
2.子进程出现任何问题,都不影响父进程Shell

总的来讲:

1.shell是什么?
是一个包裹在操作系统外部的一层软件层,帮用户进行命令行解释
2.为什么要有shell?
因为用户不善于和内核打交道,所以需要在用户和内核之间添加一层软件层方便用户进行指令或者图形化界面的一个输入,
然后把指令翻译给操作系统,再把结果翻译给用户
3.shell具体是怎么做的?
shell父进程+子进程

Linux权限

Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$‘“
在这里插入图片描述
在这里插入图片描述

su 命令

可能有时你的权限不够,需要从普通用户切换到超级用户,进而完成某些操作。
语法: su 用户名
功能: 用户切换。eg:从普通账号切换为root账号。
在这里插入图片描述
注意:
1.从普通账号切换为root账号时,指令当中的root可省略,因为root账号只有一个。
2.该指令也可以从一个普通用户切换为另一个普通用户,输入要切换用户的密码即可。
3.切换用户后,若想切回上次的用户,可通过Ctrl+D实现。

sudo 命令

但可能某些情况下,你只想提升当前指令的权限,那么不必切换到超级用户。
语法: sudo 指令
功能: 提升当前指令的权限。

在这里插入图片描述

Linux权限管理

文件访问者的分类(人)

对于用户来说,权限可以将用户分为三大类:
1.文件和文件目录的所有者(文件拥有者User)。
2.文件拥有者所在的组的用户(文件所属组Group)。
3.其他用户(Others)。
注意:
1.用户–>角色对应的关系
2.所属组什么意思?
特殊情况:一个组内可以只有一个人,
一个组内可以有很多人,用组长的名字来对应组的命名
在这里插入图片描述
注: 除了文件拥有者和文件所属组之外的都叫other。

文件类型和访问权限(事物属性)

我们通常通过ll来查看文件:
在这里插入图片描述
在这里插入图片描述
a) 文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
注意: 在Linux当中,文件类型与文件后缀无关。

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

表示方式:
1.字符表示方法
在这里插入图片描述
2.八进制数值表示法
在这里插入图片描述

文件访问权限的相关设置方法

chmod命令

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项: -R 递归修改目录文件的权限。
说明:只有文件的拥有者和root才可以改变文件的权限

chmod指令权限值的格式:
格式一: 用户符号 +/-/= 权限字符
1)+:向权限范围增加权限代号所表示的权限。
2)-:向权限范围取消权限代号所表示的权限。
3)=:向权限范围赋予权限代号所表示的权限。
用户符号:
1)u:拥有者。
2)g:所属组。
3)o:other。
4)a:所有用户。
在这里插入图片描述
格式二: 三位八进制数字
将对应的八进制数转换为二进制,进而设置对应权限值。
在这里插入图片描述

chown命令

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
常用选项: -R 递归修改目录文件的拥有者。
在这里插入图片描述
注意: 修改文件的拥有者需要root用户进行操作,若是普通用户则需要进行权限提升。

chgrp命令

语法: chgrp 选项 用户名 文件名或目录名
功能: 修改文件的所属组。
常用选项: -R 递归修改目录文件的所属组。

在这里插入图片描述
注意: 修改文件的所属组也需要进行权限提升。

umask命令

功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
在这里插入图片描述

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
户默认为0002。
在这里插入图片描述
实际创建的出来的文件权限是: mask & ~umask
在这里插入图片描述
在这里插入图片描述
注意: 超级用户的默认掩码为0022,普通用户的默认掩码为0002。

目录的权限

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

我们来看下面这种问题:
在这里插入图片描述
为了解决这个不合理的问题,Linux引入了粘滞位的概念。

粘滞位

语法: chmod +t 目录名
功能: 给目录加上粘滞位。
当一个用户将某一个目录加上粘滞位后,该目录的权限值的最后一位变为字符“t”。
在这里插入图片描述
此时另一个用户就算有该目录的可写权限,也无法删除该目录下的文件。
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
1.超级用户删除。
2.该目录的拥有者删除。
3.该文件的拥有者删除。
注意: 虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件

关于权限的总结

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

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

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

相关文章

遥感深度学习:如何读取TIFF文件和切片成256*256?

博客已同步微信公众号:GIS不要炒茄子 01 前言 最近打算认真从头开始学习深度学习和遥感结合的相关内容,主要通过Python进行处理。此前用深度学习进行遥感相关的学习一直都是用 tensorflow3.0 框架,但是考虑很多因素我后面打算换用 Pytorch…

JetBrains2023年度报告,编程领域的风向标

前言 JetBrains是一家位于捷克的软件开发公司,有很多知名的开发IDE都是他们家的,比如IntelliJ IDEA、CLion、PyCharm、WebStorm等等,还有Kotlin编程语言也是JetBrains开发的,后来成为Android官方开发语言。 自2017年JetBrains发…

HNU-算法设计与分析-讨论课2

第二次小班讨论 (以组为单位,每组一题,每组人人参与、合理分工,ppt中标记分工,尽量都有代码演示) 算法分析题 3-4、4-1(要求:有 ppt和代码演示讲解 算法实现题 3-23、4-1(要求:有ppt 和代码演示讲解 数学之…

使用HTTP协议在Linux上进行API调用

在Linux系统上使用HTTP协议进行API调用是一种常见的操作,有时候我们需要调用一些外部API来获取数据或者进行自动化操作。下面是一个使用HTTP协议在Linux上进行API调用的代码示例,希望能够帮助你更好地理解这个过程。 首先,我们需要使用curl命…

【Docker】swarm stack部署多service应用

前面我们已经学习过了Docker Compose,它可以用来进行一个完整的应用程序相互依赖的多个容器的编排的,但是缺点是只能在单机模式使用,不能在分布式多机器上使用;前面我们也学习了Docker swarm,它可以将单个服务部署为多…

SOLIDWORKS CSWE认证考试报名

​ SOLIDWORKS CSWE是高级别的SOLIDWORKS认证,是一项充满挑战性的艰巨任务。CSWE测试不是简单注册就可以的,是要有一定资格才能参加考试,您首先需要获得CSWP证书,然后还得通过5个CSWPA系列主题考试中的至少4个主题(钣金…

基于UDP的套接字通信

基于UDP的套接字通信 1、通信流程1.1 服务端1.2 客户端 2、通信函数3、通信代码3.1 服务端代码3.2 客户端代码 原文链接 udp是一个面向无连接的,不安全的,报式传输层协议,udp的通信过程默认也是阻塞的。 UDP通信不需要建立连接 ,…

【ZYNQ】AXI4总线接口协议学习

建议翻看着底部的参考文档资料和本文一起辅助阅读 本文带你详细的了解AXI总线协议,并且基于官方手册,能够提高你的手册阅读能力。 什么是AXI AXI 的英文全称是 Advanced eXtensible Interface,即高级可扩展接口,它是 ARM 公司所提…

数据探索和模型建构

数据探索:观察数据之间的关系 分别判断 性别(sex)、船舱等级(Pclass)、年龄(Age)、有无父母子女(Parch)、有无兄弟姐妹(SibSp)、票价(Fare) 和 港口(Embarked)等因素和 存活(Survived)之间的关系 In [27]: sex_survived_cor train_data[[Sex,Survived]] sex_sur…

安科瑞出席宁波市建筑电气2023年年会-安科瑞 蒋静

12月1日,宁波市建筑电气2023年年会在宁波市海曙天港禧悦酒店成功举办。作为推动宁波市建筑电气行业技术发展的专业交流会,吸引了建筑电气行业领导、专家、设计师、厂家等300多名代表参会。期间,安科瑞电气股份有限公司携智能楼宇、智慧校园、…

HTML中表格的语法及使用(详解)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中表格的语法及详细使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留…

骨传导耳机十大品牌排行榜,骨传导耳机品牌排名哪个好

骨传导蓝牙耳机的使用越来越广泛,无论是在户外运动还是在办公室工作,它都能为你带来自由的音乐体验。在本文中,我们将为你介绍十款TOP级骨传导蓝牙耳机,这些品牌在市场上拥有良好的口碑和广泛的使用者。通过本下面的选购指南&…

Buck电路 (PWM实现与闭环反馈) 电力系统仿真

Buck电路 (PWM实现与闭环反馈) Buck电路是降压型的DC-DC变换器。 三角波: 闭环控制怎么实现呢? 比例积分微分控制(proportional-integral-derivative control),简称PID控制,是最早…

祝贺!2023美丽汉字小达人市级比赛和区级自由报名获奖名单发布

昨天,汉字小达人的主办方《中文自修》杂志社在官网发布了两个公示:《“中文自修杯”第十届上海市小学生“美丽汉字小达人”市级活动获奖名单公示》、《“中文自修杯”第十届上海市小学生“美丽汉字小达人”区级活动“自由报名”获奖名单公示》。 这两份名…

mybatis查询结果resultMap映射vo源码分析

概述 mybatis是一个常用的持久层框架;通常搭配mysql使用; 在将查询结果映射成一个复杂vo的时候,通常会用到resultMap,在其中嵌套association和collection等操作;将一个复杂查询拆分成简单查询; 在vo中的变…

「玩转 TableAgent 数据智能分析」实战数据分析演练

文章目录 前言TableAgent 功能亮点人人都是数据分析师融合创新应用的新成果 TableAgent 使用介绍登陆功能介绍申请认证 实战数据集分析一导入 CSV 文件数据发起提问TableAgent 应答结果贴切的服务推荐问题提问 实战数据集分析二分析结果分析哪个城市的未来人口最多 总结 TableA…

proteus元件合集(一)

LCD LM018L​​ 绿色的LCD寻找方法: 直流电压源 直流电压源寻找方法: 滑动变阻器 滑动变阻器寻找方法: 注意:它出来之后会自动出现那两个红色的。那是电源。

C#基础面试题集

C#基础 1. 简述值类型和引用类型有什么区别2. C# String类型比 stringBuilder 类型的优势是什么?3.面向对象的三大特点4.请简述private,public,protected,internal的区别5.结构体和类6.请描述Interface与抽象类之间的不同7.在类的构造函数前…

虚幻学习笔记9—C++代码变量与蓝图的通信

一、前言 C代码中通过关键字“UPROPERTY”来讲所需要的变量、方法或枚举反射暴露给蓝图,实现C和蓝图之间的通信。所有实现的变量都在一个名为“MyPawn1”类中,同时提到的蓝图是根据这个类创建的。同时这个Pawn类为场景中的默认Pawa类。 图1.1.1 文中提到…