当前位置: 首页 > news >正文

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、目录拥有者、文件拥有者可以删除,其他角色不具有该权限。

相关文章:

Linux——shell原理和文件权限

1.shell原理 在我们使用云服务器时&#xff0c;需要通过shell进行使用&#xff0c;而shell则是一种外壳程序。 我们提到过&#xff0c;大部分的指令实际上就是文件&#xff0c;当用户需要执行某种功能时&#xff0c;由于用户不擅长和操作系统直接交互&#xff08;操作复杂&…...

网络工程师需要熟悉Docker吗?我觉得不需要精通,但是得懂基础

你好&#xff0c;这里是网络技术联盟站&#xff0c;我是瑞哥。 Docker&#xff0c;这个字眼大家不陌生吧&#xff0c;不过作为网络工程师可能平时接触不到&#xff0c;如果在看文章的是运维人员&#xff0c;那么70%以上的运维人员都会跟Docker打交道。即使网工用不到&#xff…...

c++初级-2-引用

文章目录 引用一、引用的定义二、引用做函数参数三、引用作为返回对象四、引用的本质五、常量引用 引用 即给一个变量起别名。 一、引用的定义 int a 10;//引用int& b a;cout << "a " << a << endl;cout << "b " <&l…...

如何清理电脑内存?让电脑运行如飞!

电脑内存&#xff08;RAM&#xff09;的清理对于维持系统的流畅运行至关重要。随着使用时间的增加&#xff0c;系统内存会被各种应用程序和后台进程占用&#xff0c;导致系统响应变慢&#xff0c;甚至出现卡顿现象。通过有效地清理内存&#xff0c;可以提升电脑的性能&#xff…...

[数据集][目标检测]人员状态跑睡抽烟打电话跌倒检测数据集4943张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4943 标注数量(xml文件个数)&#xff1a;4943 标注数量(txt文件个数)&#xff1a;4943 标注…...

Java8 - Stream API 处理集合数据

Java 8的Stream API提供了一种功能强大的方式来处理集合数据&#xff0c;以函数式和声明式的方式进行操作。Stream API允许您对元素集合执行操作&#xff0c;如过滤、映射和归约&#xff0c;以简洁高效的方式进行处理。 下面是Java 8 Stream API的一些关键特性和概念&#xff…...

漫步5G-A City,一份独属于上海的浪漫

作家亨利詹姆斯曾写道&#xff0c;“城市漫步&#xff0c;让我接触到了这个世界上最好的东西”。 用漫无目的地行走&#xff0c;来体验和观察一座城市&#xff0c;上海凭借丰富多元的文化特质&#xff0c;成为citywalk这种浪漫生活方式的流行地。 无论你是漫步在美术馆、画廊林…...

SpringBoot 如何处理跨域请求?你说的出几种方法?

引言&#xff1a;在现代的Web开发中&#xff0c;跨域请求&#xff08;Cross-Origin Resource Sharing&#xff0c;CORS&#xff09;是一个常见的挑战。随着前后端分离架构的流行&#xff0c;前端应用通常运行在一个与后端 API 不同的域名或端口上&#xff0c;这就导致了浏览器的…...

OV SSL证书年度成本概览:为企业安全护航的经济之选

在当今数字化时代&#xff0c;企业网站不仅是品牌展示的窗口&#xff0c;更是与客户沟通的桥梁。然而&#xff0c;随着网络威胁的不断升级&#xff0c;保护网站安全成为了企业不可忽视的任务。SSL证书&#xff0c;特别是OV SSL证书&#xff0c;因其对企业身份的严格验证&#x…...

歌尔气压计SPA06-003在无人机的创新应用

随着科技的不断进步&#xff0c;各类智能设备的功能日益强大&#xff0c;其中气压计作为一种能够测量大气压力的传感器&#xff0c;已被广泛应用于多种领域。歌尔气压计以其高精度、低功耗的特点&#xff0c;在无人机和智能手表上的应用尤为突出&#xff0c;为这两个领域的产品…...

python3多文件操作

1 介绍 有两个.py文件&#xff0c;分别为main.py和util.py&#xff0c;执行main.py时&#xff0c;调用util.py当中的函数。 main.py内容如下&#xff0c; import util if __name__ "__main__":a [3.0,4.0]length util.get_length_from_vec(a)print(f"leng…...

312. 戳气球

312. 戳气球 题目链接&#xff1a;312. 戳气球 代码如下&#xff1a; //参考链接:https://leetcode.cn/problems/burst-balloons/solutions/336390/chuo-qi-qiu-by-leetcode-solution class Solution { public:int maxCoins(vector<int>& nums) {int nnums.size()…...

深入理解C++中的锁

目录 1.基本互斥锁&#xff08;std::mutex&#xff09; 2.递归互斥锁&#xff08;std::recursive_mutex&#xff09; 3.带超时机制的互斥锁&#xff08;std::timed_mutex&#xff09; 4.带超时机制的递归互斥锁&#xff08;std::recursive_timed_mutex&#xff09; 5.共享…...

压缩pdf文件大小,压缩pdf文件大小软件哪个好

在数字化时代&#xff0c;PDF文件因其卓越的跨平台兼容性和稳定性而成为工作与学习的好帮手。然而&#xff0c;当PDF文件体积过大时&#xff0c;传输和存储便成了一项挑战。别担心&#xff0c;本文将为你揭秘如何快速压缩PDF文件&#xff0c;让你的文档轻装上路&#xff01; 压…...

难道 Java 已经过时了?

当一门技术已经存在许多年了&#xff0c;它可能会失去竞争力&#xff0c;而后黯然退场&#xff0c;默默地离开&#xff0c;这对大部分的人来说就已经算是过时了。 Java 于 1995 年正式上线&#xff0c;至今已经走过了 27 个年头&#xff0c;在众多编程技术里算是年龄比较大的语…...

华为OD机考题(​HJ32 密码截取)

前言 经过前期的数据结构和算法学习&#xff0c;开始以OD机考题作为练习题&#xff0c;继续加强下熟练程度。有需要的可以同步练习下。 描述 Catcher是MCA国的情报员&#xff0c;他工作时发现敌国会用一些对称的密码进行通信&#xff0c;比如像这些ABBA&#xff0c;ABA&…...

【高考志愿】测绘科学与技术

目录 一、专业介绍 1.1 专业概述 1.2 专业方向 1.3 课程内容 二、就业前景 三、报考注意事项 四、测绘科学与技术专业排名 五、职业规划与未来发展 高考志愿选择测绘科学与技术专业&#xff0c;对于许多有志于空间信息技术领域发展的学生来说&#xff0c;无疑是一个极具…...

SpringBoot异步接口实现 提升吞吐量

前言 Servlet 3.0之前&#xff1a;HTTP请求由单一线程处理。Servlet 3.0之后&#xff1a;支持异步处理&#xff0c;提高系统吞吐量。 SpringBoot 异步接口实现方式 AsyncContext&#xff1a;Servlet层级&#xff0c;不常用。Callable&#xff1a;使用java.util.concurrent.C…...

C语言快速学习笔记

学习网站&#xff1a;C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com) 这个网站知识完整&#xff0c;讲解清晰。 在线C语言编程工具&#xff1a;菜鸟教程在线编辑器 (runoob.com) 国外学习网站&#xff1a;C语言介…...

如何选择易用性高的项目管理软件?

随着项目管理在各行各业的广泛应用&#xff0c;选择一款易用性高的项目管理软件变得越来越重要。易用性高的软件可以帮助企业提高工作效率&#xff0c;降低管理成本&#xff0c;同时还能提升团队之间的协作能力。那么&#xff0c;如何选择一款易用性高的项目管理软件呢&#xf…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)

起因 为了实现在报销流程中&#xff0c;发票不能重用的限制&#xff0c;发票上传后&#xff0c;希望能读出发票号&#xff0c;并记录发票号已用&#xff0c;下次不再可用于报销。 基于上面的需求&#xff0c;研究了OCR 的方式和读PDF的方式&#xff0c;实际是可行的&#xff…...

FTXUI::Dom 模块

DOM 模块定义了分层的 FTXUI::Element 树&#xff0c;可用于构建复杂的终端界面&#xff0c;支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...

SpringCloud优势

目录 完善的微服务支持 高可用性和容错性 灵活的配置管理 强大的服务网关 分布式追踪能力 丰富的社区生态 易于与其他技术栈集成 完善的微服务支持 Spring Cloud 提供了一整套工具和组件来支持微服务架构的开发,包括服务注册与发现、负载均衡、断路器、配置管理等功能…...

【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练

本项目提出了ContentV框架&#xff0c;通过三项关键创新高效加速基于DiT的视频生成模型训练&#xff1a; 极简架构设计&#xff0c;最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略&#xff0c;利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…...