【Linux】权限详解 权限本质、权限属性、su、sudo提权、chmod\chown\chgrp、文件类别

文章目录

  • 一、权限的认识
  • 二、linux的权限本质
  • 三、linux的用户
    • su指令
    • sudo提权
  • 四、linux角色
  • 五、文件权限属性
  • 六、修改权限的指令操作
    • chmod指令(权限只会验证一次)
    • chown/chgrp指令
    • 修改文件权限的八进制方案
  • 七、文件类别详解


一、权限的认识

  • 什么是权限?
    生活中处处都有权限,本质就是你要做一件事能还是不能的问题,有权限就能做,没权限就算你想做也不能做
  • 为什么linux要有权限?
    首先linux是一款多用户的操作系统,也就意味着可能同时会有多个人来进行登陆访问,如果一个用户可以随意读取或修改其他用户的文件,不就乱套了,所以权限本质就是为了更好的用户管理。

二、linux的权限本质

在linux下权限=人+文件属性,第一次听可能很难理解,小编会在接下来的介绍中慢慢让大家接受并理解的。
权限是针对特定的群体的,也就是是与人就关,在linux下有两类人:普通用户和root。
人访问的目标主体要具备天然的属性才能访问,比如你在现代2025年就不能成为秦始皇去骑北极熊。在linux中由于一切皆文件,所以linux下的目标主体当然就是文件,文件一般具有三个属性:可读、可写、可执行,如果用户有读一个文件的权限,但是文件本身没有可读属性,那也读不了。
所以你就通过设定文件特定的属性,来约束特定的群体具有特定的权限。

三、linux的用户

在linux中,用户一般分为两类,一类是超级用户root,在99%的情况下不受权限的约束,属于linux系统中的特权级别,一类是普通用户,会受到一定的约束。

su指令

该指令可以实现root用户与普通用户之间互相切换。 su 用户名
指令就可以切换到目标用户,root切换到普通用户是直接切换,不需要密码普通用户若想切换为root需要输入root用户的密码。这里还有一个快捷热键,ctrl+d可以切换回上一个用户。

在这里插入图片描述

除了上面指令可以切换外,直接 su 也可以由普通用户切换为root,因为普通用户可以由多个,但是root只有一个,所以su默认就是切换到root。 还有一个指令su -,也可以完成由普通用户到root的切换,它和上面两个指令的区别是它会以目标用户重新登陆的方式切换,上面两个指令只是切换用户身份,不进行二次登陆所以不改变当前路径。

在这里插入图片描述

su也可以普通用户与普通用户之前切换,这种方式需要输入登陆目标的用户的密码。

sudo提权

这里有一个场景,普通用户想安装软件,安装软件本质就是将文件拷贝到指定系统的指定路径下,而大多数情况操作系统不会让普通用户拷贝,只有root能拷贝,那这意味着只有root才能安装软件?这样显然与我们常识相背,所以linux支持让普通用户短暂提高权限,也就是sudo提权。示例如下:

在这里插入图片描述

总结:sudo是一条能让普通用户的指令进行短暂提权的指令。
这里我想读者应该和小编第一次接触这个知识一样,sudo是输入的普通用户自己的密码,(这里输入自己的密码是合适的,因为sudo是让普通用户能短暂提权,如果要输入root的密码那sudo也需要管理员来操作,那和切换到root账号就没有本质区别了)那我每隔一定时间sudo一次,那我一直都有root的权限,那root不就形同虚设了吗?
所以linux有一个规定,普通用户默认是不能sudo提权的,(虚拟机除外)普通用户sudo报错如下:

在这里插入图片描述

我们看到是因为普通用户没在一个叫做sudoers的文件里,sudoers是一个只能由root访问修改的属于root的配置文件,该文件相当于linux系统里的白名单,只有在该白名单里的用户可以进行sudo提权,普通用户默认是不在这个白名单里的,只有root把该用户添加到了这个白名单他才能sudo。所以以后文件被恶意修改后也只能是白名单里的用户操作的,可以缩小追查范围。

四、linux角色

在现实世界,一个人所拥有的权限是由这个人的角色决定的,比如校长叫张三,他能开除学生学籍不是因为他是张三,而是因为他是校长这个角色,所以我们可以认为权限是依附于角色的
在linux系统里存在三种角色,一种是文件的拥有者(owner),一种是所属组(group),一种是其他(other)。下面我们以hello.c文件为例来讲解:

在这里插入图片描述

用ll指令查看文件属性只会显示文件的拥有者和所属组,不会显示other,因为识别出用户既不是拥有者也不是所属组那么他就是other。
那么角色和我们前面 介绍的用户有什么关系呢,相信大家都能猜个7788,答案是角色是由用户来扮演的

文件的拥有者是指文件是由谁创建的,该文件属于谁,我相信这很好理解,但是所属组小编认为有必要详细解释一下:
如果文件角色只有owner和other的话,组长想看你写的代码那你只能开放other权限,就相当于你对所有other都开放了权限可以看你的代码,就有可能让其他组的竞争对手看到你的代码。所以linux引入了所属组,因为组长肯定在组内,只要把组权限放开组长就能看了。所属组的存在就是方便对文件权限进行局部范围组级别的管理。

五、文件权限属性

文件的常见权限有三个:r(读),w(写),x(可执行)。

在这里插入图片描述

我们看上图,文件权限也会显示在文件详细属性里,其中r w x权限顺序固定无法修改,以r为例,若该文件可读则显示r,若不可读则显示-。
我们现在就可以将用户、角色、文件属性结合到一起来表达一个文件的权限,以test.c为例:
test.c文件的拥有者是root,所属组也是root,该文件的拥有者对应的权限是可读可写不可执行,该文件的所属组对应的权限是可读不可写不可执行,other没在这里体现出来,该文件other对应的权限的可读不可写不可执行。

注意:文件具有可执行权限不代表该文件可以被执行,文件想要被执行需要两个条件:文件本身是可执行文件且该文件有可执行权限

六、修改权限的指令操作

我们前面介绍过权限=人+文件属性,所以要修改一个文件的权限可以从两方面入手,一是修改文件的角色,二是修改特定角色的权限。

chmod指令(权限只会验证一次)

我们先来介绍修改文件属性的指令操作,只有root或文件的拥有者可以修改文件权限,(但是文件的拥有者无法更改文件的拥有者和所属组,后面再细讲)chmod就是修改文件属性的指令,具体用法如下:

在这里插入图片描述

只有普通用户才受文件权限的约束,root是不受文件权限的约束的,所以这也可以印证之前介绍的root是linux系统中的特权。

下面我们再看一个例子:

在这里插入图片描述

当我们把user的读写权限去掉后,那么在扮演user的用户就算还扮演文件的所属组,他也无法具有所属组拥有的权限了,这就间接证明了一个结论:当用户访问文件时,确定自己相对文件的身份角色,只会验证一次,也就是说,权限只会验证一次
下面我们用指令chown来直接证明。

chown/chgrp指令

chown可以更改文件的拥有者,chgrp可以更改文件的所属组,下面这个例子可以证明权限只会验证一次:

在这里插入图片描述

由于现在test.txt文件的拥有者被改为了root,所以whb就会被验证为所属组,所属组就有对应的读写权限。

chown还可以通过以下指令同时更改文件的拥有者和所属组:

在这里插入图片描述

这里小编还想仔细聊聊有关修改文件对应角色的用户的问题:
1、首先文件的角色是不能被修改的,也就是无法修改ll后显示出来的文件属性的那个特定位置代表的角色和权限,只能修改角色下的用户,也就是修改拥有者或者所属组是谁。
2、没有修改文件other的指令,因为修改拥有者和所属组就是在变相修改other。
3、文件的拥有者只能更改文件的属性,但是他不能更改文件的拥有者和所属组。因为把文件的拥有者和所属组修改为别人或者别组需要征得别人的同意,但是再linux中我们无法征得别人同意,所以要把文件的拥有者和所属组修改为别人需要超级用户的权限,也就是直接用root修改或者sudo提权修改。

修改文件权限的八进制方案

我们知道文件的一个角色有三种权限,是否有权限可以被看作数字1和0,有权限为1,没有权限为0,所以一个角色的的权限就有8种可能,我们可以用数字0~7来表示这8种可能,我们就可以用这样的8进制方案来修改文件属性:

在这里插入图片描述

七、文件类别详解

之前我们已经接触过了普通文件(-),和目录(d),其实linux中的文件不止这两类,下面我们来详细认识一下有哪些文件和文件对应的特点:

  • 普通文件( - ): 如源代码、文本、动静态库、可执行
  • 目录( d ):
  • 链接文件( l )
  • 管道文件( p )
  • 字符文件( c ): 如键盘、显示器,它必须按顺序输入输出,不支持随机读写,以字节为单位,这种文件都是以字符的形式输入输出,比如输出一个1234到显示器上,是用printf或cout格式化输出,以字符’1‘’2‘’3‘’4‘显示在显示器上
  • 块设备文件( b ): 如磁盘, 它支持随机随机读写,以块(4kb)为单位

以上就是小编分享的全部内容了,如果觉得不错还请留下免费的关注和收藏如果有建议欢迎通过评论区或私信留言,感谢您的大力支持。
一键三连好运连连哦~~

在这里插入图片描述

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

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

相关文章

rman清理归档

1进入rman rman target / 2:列出所有归档日志的路径 LIST ARCHIVELOG ALL; 3.然后在执行 crosscheck archivelog all;(检查 RMAN 存储库中记录的归档日志是否在磁盘或备份存储中实际存在。 4.然后在执行 delete noprompt expired archivelog all;&…

Selenium 处理动态网页与等待机制详解

在使用 Selenium 进行网页自动化操作时,动态网页往往是开发者遇到的第一个 “拦路虎”。想象一下:你明明在代码中写好了元素定位逻辑,运行时却频繁报错 “元素不存在”,但手动打开网页时元素明明就在眼前 —— 这很可能是因为网页…

Salesforce 与外部系统实时集成:基于事件驱动的异步集成架构

在 Salesforce 与外部系统(如 ERP、财务系统、物流系统等)的实时集成中,“稳定性” 是核心挑战 —— 既要保证数据同步的及时性,又要应对网络波动、系统故障、并发冲突等不可控因素。以下从问题本质、技术瓶颈、解决方案细节三个维…

React 的 `cache()` 函数

文章目录前言一、核心作用二、工作原理三、使用场景1. 避免重复数据请求2. 优化昂贵计算四、缓存规则详解五、与其它缓存方式对比六、服务端特殊行为七、最佳实践八、缓存失效策略九、使用限制十、与数据获取库集成总结:何时使用 cache()前言 React 的 cache() 函数…

大白编译——autotools与cmake

注意: 本文内容于 2025-07-20 01:58:56 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:大白编译——autotools与cmake。感谢您的关注与支持! 之前记录了通过autotools编译rpm包与deb包的步骤。参考小白编译——rpm包与deb包 - …

react19+nextjs+antd切换主题颜色

在 React 19 Next.js Ant Design 项目中实现主题切换功能,可以通过以下步骤完成。这里将提供完整方案,包含静态主题切换和动态实时切换两种方式。一、基础配置(Ant Design 主题支持) 1. 安装必要依赖 npm install antd ant-desi…

Modbus Slave 使用教程:快速搭建模拟从站进行测试与开发

文章目录Modbus Slave 使用教程:快速搭建模拟从站进行测试与开发步骤详解:搭建 Modbus Slave1. 安装与启动2. 配置从站连接 (Connection Setup)连接3. 定义从站数据 (设置寄存器/线圈映射)4. 设置初始值与变化模式 (可选但重要)5. 连接 Master 进行测试高…

通俗易懂神经网络:从基础到实现

引言 神经网络是人工智能和深度学习的核心,它模仿人脑的工作方式,通过数据学习复杂的模式。本文将以通俗易懂的方式讲解神经网络的基础知识,包括单层神经网络、多层神经网络,最后用Python代码实现一个简单的神经网络模型。1. 神经…

【Linux】基本指令详解(三) 指令本质、三个查找指令、打包压缩、重要热键、linux体系结构、命令行解释器

文章目录date指令cal指令find指令(指令本质也是文件)which指令file指令whereis指令alias指令grep指令top指令打包和压缩指令zip/unzip指令关于rzsz(linux与windows互传 )tar指令linux机器之间互传bc指令uname指令(查看linux机器体系结构)几个重要的热键[Tab]按键[Ctrl]c按键[Ct…

MSTP 多生成树协议

MSTP 多生成树协议 STP/RSTP 的局限性 所有 vlan 共享一颗生成树无法实现不同 vlan 在多条 Trunk 链路上的分担 二层链路负载均衡STP/RSTP 的局限——次优二层路径**次优二层路径(Suboptimal Layer 2 Path) 是指: ** 数据帧在交换网络中传输时…

Shell脚本-tee工具

一、前言在 Linux/Unix 系统中,tee 是一个非常实用的命令行工具,它可以帮助我们 同时将命令的输出打印到终端,并写入文件。这种“双路输出”机制在脚本调试、日志记录、自动化任务中非常有用。无论是做日志分析、脚本调试,还是编写…

走进Linux的世界:Linux基本指令(三)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…

跨域详解与解决方案:从理论到实践的全面指南

目录 1. 跨域是什么?为什么它让人头秃? 为什么跨域问题让人抓狂? 跨域的本质 2. 跨域的罪魁祸首:同源策略与CORS 同源策略的来龙去脉 CORS:跨域的“通行证” 3. JSONP:古老但依然有用的跨域“黑科技” JSONP的原理 JSONP的优缺点 4. 代理服务器:跨域的“中间人…

深入详解:决策树在辅助诊断系统与临床决策支持中的应用及实现细节

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#,Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…

【详细笔记】两类曲线积分转换

文章目录参考教程一两类曲线积分的联系参数方程曲线的切线方向余弦参考教程2两类曲线积分之间的关系物理意义解释证明思路参考教程一 3分钟帮你搞定两类曲线积分之间的联系(弧长和坐标) 两类曲线积分的联系 设平面曲线LLL上的第二类曲线积分∫LPdxQdy…

【成品设计】基于STM32F429的云端电子相册

V1《基于STM32F429的云端电子相册》 V1硬件框图:V1功能说明: 支持 softAP 配网。支持 HTTPS 客户端的 GET\POST 请求支持文件系统用于图片的存储。支持 LVGL 自定义 GUI。日历功能。STM32F429文件系统LVGLRGB LCD屏幕。屏幕尺寸480*480. 首次开机交互&am…

网络安全隔离技术解析:从网闸到光闸的进化之路

目录 一、网络安全隔离技术体系 1.1 网络安全隔离技术发展历程 1.2 隔离技术分类矩阵 1.3 核心隔离原理对比 二、网闸技术深度解析 2.1 GAP架构剖析(Guarded Access Point System 安全隔离与信息交换系统) 2.2 技术演进路线 三、光闸技术突破创新…

初识 二叉树

目录树什么是二叉树二叉树的五种状态满二叉树完全二叉树二叉排序树平衡二叉树二叉树的遍历B3642 二叉树的遍历P1305 新二叉树二叉树的深度P4913 【深基16.例3】二叉树深度相关例题训练:二叉树问题树 这是树(拍摄于郑州轻工业大学,第一次郑州轻…

(1)Windows环境下安装Oracle

概述:Oracle数据库是一种网络上的数据库, 它在网络上支持多用户, 支持服务器/客户机等部署(或配置)。服务器与客户机是软件概念:它们与计算机硬件不存在一一对应的关系. 即:同一台计算机既可以充当服务器又可以充当客户机,或者一台计算机只充当服务器或只…

工业数据集成中间件工具OPC Router详细介绍

一、产品概述 OPC Router 是 Software Toolbox 旗下的一款面向工业数据集成与自动化的数据中间件工具,专注于实现各类工业系统之间的数据交互和自动化流程编排。它通过模块化的插件机制,打通 PLC、ERP、MES、数据库、MQTT、REST API 等不同系统之间的数…