【Linux】Linux的权限

【Linux】linux权限设置 文章目录一、shell1. shell概念2. 进程二、用户1. 用户分类2. 用户切换三、权限1. 临时权限提升2. 权限的属性3. linux中角色类别4. 第一列文件属性四、修改权限1. 修改文件权限2. 修改文件所属3. 修改文件权限八进制4. 粘滞位五、linux默认权限设置1. 默认权限2. 权限掩码 linux/sentos 是一个操作系统 广义上,linux发行版 = linux内核版本 + 外壳程序(狭义上不包括) 外壳程序:shell、bash 对应windows系统下的gui, 阅读详情

引言

        在Linux系统中,权限机制是整个系统安全体系的核心基石,也是Linux区别于Windows的关键特性之一。Linux将一切资源抽象为文件,并通过严格的权限规则划分拥有者、所属组以及其他用户的访问能力,从根本上防止非法读取、篡改和误删数据。无论是日常文件管理、服务部署,还是服务器运维,权限配置不当都是绝大多数的安全漏洞、程序报错、访问失败的直接原因。熟练掌握读、写、执行权限的含义,理解数字权限与符号权限的转换逻辑,是入门Linux运维、后端开发的必备基础。本文将从零梳理Linux的权限机制的完整原理与实操用法。

1、用户

        在Linux中,用户分为两种,一种是root用户,也就是我们常说的超级用户,一种是普通用户,也就是我们平常操作所用的用户。root用户权限高,普通用户权限低,受管控。

        Linux的大部分系统文件都不允许普通文件修改,如果我们想对它们进行修改,就必须切换为root用户,在终端里,我们可以直接通过su/su -命令来切换用户,命令后面接具体的用户名时就是切换到该用户,不接用户名时就默认切换到rooot用户

su
su -

        可以看到,su和su -都可以切换为root用户,它们两的区别就在我红框圈出来的地方,使用su切换用户时,所处路径会保持切换之前的位置不变,使用su -则会进入所切换用户的家目录中,一般情况下我们使用su就足够了。在从普通用户切换为超级用户时需要输入超级用户账号的密码,从超级用户切换为普通用户就不用输密码。

        此外,在有些情况下,我只是需要超级用户的权限进行少量的操作,如果反复切换用户会很麻烦,这时候我们就可以用一个命令“sudo”来对我们的指令纪念性短暂的提权,此命令后面接的命令会被判定为时root用户输入的命令。比如上一篇文章中我们在安装zip等命令时就使用了sudo这个命令。

2、权限

        现在我们来正式进入对权限的学习,首先我们要思考的第一个问题是:权限是什么?简单来说,权限的本质就是你能或不能做什么事情,就像上面说的,你是普通用户,你就不能安装原件,必须是超级用户才可以。第二个问题是:为什么要有权限?大家不妨设想一下,如果有一天公司里新来了一个实习生,因为不会操作误删除了系统中的重要组件,是不是会导致很严重的后果。所以要有权限的原因是为了控制用户的行为,防止错误的发生。权限首先限制的是角色,权限要求目标必须具备对应的属性,权限=角色+目标权限属性。

        在上篇文章中关于文件属性的部分,有一部分我们没有学习,是因为它们都是和权限有关的属性,这节课我们就来讲解一下它们。在讲解这张图之前,我们需要先了解一下Linux系统中角色的概念,角色分为三种,分别是:拥有者、所属组、其他用户。拥有者就是当时创建这个文件的用户,所属组就是该用户所属的组别,其他用户就是其他用户。上图中红色下划线标注的两个角色分别就是该文件的拥有者和所属组,其他用户默认不显示。前面我用红框框出来的位置我们已经知道了它代表着文件的类型,后面用绿框框出来的部分我们可以看到由九个字符组成,我们将其每三个分为一组,它们分别对应的就是拥有者、所属组和其他用户的权限类型。

        每组的三个字符分别代表该角色的读、写、执行权限,横杠 ‘ - ’ 代表该角色无对应权限,当前我们可以看到拥有者和所属组拥有读写该文件的权限,其他用户只有读的权限,那如果我连读都不想让其他用户读呢?这时候我们就可以用chmod来更改权限,chmod后接 ‘ u ’代表改变拥有者权限,加 ‘ g’为所属组,加 ‘ o’为其他角色,加 ‘ a’为所有角色都更改,后面再加减号 ‘ - ’ 代表取消某权限,加加号 ‘ + ’ 代表添加某权限。

        可以看到当前其他用户的读权限也被我去掉了,我们再来试试将所有人的权限都取消。

重点

1、用户只能更改自己的文件权限

        用户只能更改拥有者为自己的文件权限,我们来用一个其他文件来试试看。我先进入ubuntu的上级目录home,尝试修改lighthouse的权限,可以看到,系统会提示我们权限等级不够无法修改该文件的权限。

 2、如果没有权限,系统会拒绝让我们访问文件

        我们之前将test文件的所有权限都取消了,那么此时我们还能对该文件进行访问吗?我们来试一下。可以看到,在取消了权限后,哪怕是身为文件拥有者的我们也无法再对文件进行读写操作,系统会提示我们权限不足无法访问。

3、确定权限信息的时候,系统会先确定用户是谁?是拥有者,所属组还是其他用户?(重点)

        我们来做个测试,先将test文件所属组和其他用户的权限恢复,试试看能不能对文件进行访问。

        可以看到,我们仍然没有权限对文件进行读写,这时候就有个疑问了:虽然我作为拥有者没有权限,但是所属组也是我啊,或者说我还在所属组里,为什么明明所属组有权限我却还是无法进行访问呢?

        这就要归功于Linux系统确定用户所属角色的机制了:系统在确定用户是什么角色时,只会确定一次,优先确定你是什么角色,就以什么角色的权限来判定你是否有权限对文件进行访问,匹配顺序是拥有者 -> 所属组 -> 其他用户。意思就是,当用户申请访问某个文件时,系统就会开始确定你的角色,发现你是拥有者,就只会按拥有者的权限来判定,判定失败了也不会接着向后确定你是不是在所属组里或者是不是其他用户,第一次确定你没有权限后就结束,直接判定为你没有权限访问该文件。

        这时候我们再试试将拥有者改成root我们能不能访问test文件。使用chown可以改变文件的拥有者,使用chgrp可以改变所属组,不过需要注意的是,系统默认不允许我们将文件给别人,想给别人就必须得是高权限,所以我们将用户切换为root再进行操作。可以看到,我们将文件的拥有者改为root用户后,我们再尝试访问文件时,系统就会确定我们为所属组成员,就可以正常对文件进行访问了。

4、root不受权限约束

        在Linux系统中,root用户拥有比所有权限都更高一级的权限,上述我们所说的所有权限对root用户都没有影响,我们可以做个测试来验证一下。

        可以看到,即便我们将所有人的权限都取消,root依旧可以对文件进行随意访问。

5、可执行权限 ≠ 文件可以执行

        接下来我们来了解一下可执行权限,可执行权限决定了我们能否去执行一个文件,但是需要注意的是,拥有文件的可执行权限并不等于我们就可以执行这个文件,一个文件想要被执行,首先需要它本身就是一个可执行文件,其次才是拥有可执行权限。我们即使给自己加上了可执行权限,文件依然无法执行

6、八进制数表示权限

        之前我们说过,三种角色的权限组里都有三个字符来表示是否拥有该权限,如果我们将拥有权限记作 ‘ 1 ’ ,无权限记作 ‘ 0 ’ ,我们就可以用三个二进制数来表示三种角色的权限,就拿现在test文件的权限来举例,拥有者的权限可以记作 ‘ 111 ’,所属组的权限记作 ‘ 110 ’,其他角色的权限记作 ‘ 100 ’,将它们三个转化成八进制数并合在一起,我们就得到了一组能表示文件权限内容的八进制数,test的八进制数为 ‘ 764 ’。我们在修改权限时也可以通过直接输入八进制数来进行修改。

三个问题

        在完成了上面对于权限基础知识的学习之后,我们还有三个问题需要进行探讨。

1、目录权限

        上面我们所有关于权限的讲解都是基于普通文件来进行的,那么目录文件的权限与普通文件有什么区别呢?我们先来看看一个基础目录都由什么权限构成:

        可以看到目录的权限为775,那现在我有两个疑问:1、如果想要进入目录需要什么权限?2、rwx权限对目录来说分别代表着什么?接下来我们来挨个进行学习。

        要研究第一个问题,我们就先来试试,分别去掉r、w、x时,去掉哪个会导致文件无法进入。可以看到,当我们取消掉dtest目录的可执行权限时,目录就无法进入了。由此可见,想要进入目录需要的是可执行权限。

        接下来我们再看看第二个问题,我们已经知道了x权限对目录来说意味着是否可以进入文件内部,我们接着看看rw权限对目录来说意味着什么。

去掉r权限

        当我们去掉r权限,进入文件,想看看当前目录下有什么文件时,我们发现,系统报错说我们没有相应的权限,这时候我们就知道了,r权限对文件来说,意味着你能否查看目录里的内容。

去掉w权限

        这回我们去掉w权限后再进入目录,查看发现目录里什么都没有,这时我们尝试创建一个文件,我们发现,我们没有权限在目录里创建文件。这可以证明w权限对目录来说意味着是否可以更改目录中的内容。

        此外,我们还有一个拓展内容,假如我们是超级用户,现在我们看上了你目录里的某个文件,我将它的所有人,所属组都改成root,将其他所有权限也都改成0,这时候,按我们之前所学的内容来看,其他用户是不是无论如何都无法使用这个文件了?

        但是在这个时候,如果我们尝试删掉这个文件会怎么样呢?

        这时候我们发现,在我们尝试产出这个文件后,系统会弹出一条信息问我们是否确定删除该文件,这时候我们输入 ‘ y ’,我们就成功将这个文件删除了!这是为什么呢?因为在Linux系统中,一个文件是否能被删除,与文件本身无关,与文件的权限也无关,只与文件所处目录的w权限有关!也就是说作为目录拥有者,有w权限,就能删除任意在该目录下的文件,管你是谁的文件我都有资格去删除。

        最后一点,Linux中多用户之间是如何互相隔离的呢?Linux系统规定,任何用户都无法进入其他用户的家目录

2、缺省权限

        相信很多同学在最开始看到文件和目录的权限时就存在一个疑问:为什么默认权限时我们现在看到的这样?为什么它不是别的?其实在Linux系统中,对于普通文件来说,起始权限为666,默认不带可执行权限;对于目录文件来讲,起始权限为777,默认携带可执行权限。可是在我们上面的讲解中好像却不是这样,文件默认权限为664,目录默认权限为775,这是为什么呢?

        因为系统默认会存在一个叫做权限掩码的概念,在命令行输入umask我们就可以看到当前的权限掩码,可以看到我们当前的权限掩码为0002,第一个零我们暂时忽略,最终权限 = 起始权限 & ~umask,就是起始权限按位与上umask的反码。

        所以现在大家理解664和775是怎么来的了吧。那么umask的目的是什么呢?为什么要有umask呢?使用umask的目的就是,希望所有在umask中出现的权限,在最终权限中都不出现。至于为什么要有umask,首先,默认权限由操作系统本身决定,在创建文件之前是无法进行认为修改的,那如果我就想取消一些权限或增加一些权限,就都得人为地手动修改,在大型项目中就很麻烦,umask就应运而生了。umask的存在其实是系统可配置、可以灵活满足需要的一种表现,在特殊情况下,配置umask可以控制文件的默认权限,让我们的代码都是可控的。

        当我们尝试将umask改为0000,再创建新文件时,新文件的权限就变成666了。所以在使用中我们可以灵活运用umask来达成一些特殊的效果,当然,如果你改的太多,忘记自己之前改过umask也不用担心,每次重新启动机器,umask都会恢复为默认值0002。

3、粘滞位

        之前我们讲过,在Linux系统中任何用户都无法进入其他用户的家目录,那如果我现在就需要多个用户之间进行合作怎么办?我们就只能将目录创建在家目录以外的地方。但这样也会带来一个弊端,首先,如果我们想所有合作的用户都可以在里面自由的创建自己的工作文件,我们就必须得开放其他用户的w权限,但是一旦我们开放了这个权限,就意味着任何人都可以对我们的目录进行删除操作,如果有别有用心的人将我们辛苦做好的文件删掉了怎么办?

        Linux系统针对这种情况也设置了应对之法,系统中设置了一个特殊的权限标志位叫做粘滞位,在共享类文件里,粘滞位的存在可以让非文件的拥有者无法删除文件,但是所有人还是可以在当前目录下自由的新建文件。如何添加这个粘滞位呢?只要在命令行输入chmod +t,就可以将其他用户的x权限变成特殊的t权限,这个位置就被称为粘滞位。如下图所示。

        其实当我们进入根目录,我们也可以看到Linux系统内其实默认给我们配置好了一个带粘滞位的共享文件,名为 “tmp”。

总结

        本文围绕Linux权限机制展开讲解,从基础的读写执行权限、数字权限配置,再到目录权限、缺省权限和粘滞位的讲解,细致地带大家将Linux系统的内容学完了,希望大家都能掌握,我们一起进步。

海康威视门禁考勤设备数据对接实战:从被动推送到主动拉取 本文深入探讨了海康威视门禁考勤设备数据对接的两种核心方案:HTTP推送与SDK主动拉取。文章对比了两种方式的适用场景、技术实现与优缺点,为开发者提供了从设备配置、代码编写到工程化部署的完整实战指南,帮助读者根据项目规模、网络环境及数据稳定性要求,做出最合适的技术选型。 阅读详情

相关推荐

Android开发Intent详解

本文详解Android开发Intent。

qq_30725967的博客 2413

linux在终端获取管理权限

sudo su

weixin_51469121的博客 663

每天一个优秀提示词学习收藏 - 文本创作篇(二)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本创作 Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2400

Linux的权限设置

普通用户的用户名 ALL =(ALL) (一个tab键)NOPASSWD:ALL。(我的普通用户名为wang521)最后ESC保存退出即可。

m0_74838098的博客 360

Spark 大数据环境搭建( Linux 系统安装和配置)

(1)选择典型安装(2)选择“安装程序光盘映像文件(iso)”,点击右侧的浏览按钮, 找到下载好的iso 文件,然后点击下一步。(3)将全名、用户名、密码、确认等几项均设为“spark”, 方便后面使用,然后点击下一步。(4)在命名虚拟机的窗体中,可以设定一下虚拟机名称或直接按默认,然后点击下一步。(5)在指定磁盘容量的窗体中,设定虚拟机使用的最大磁盘大小为60GB,虚拟机文件尺 寸是在使用过程中按需增长的,最大限制为 60GB。

2301_80186825的博客 1603

编译opencv4.2时出现undefined reference to `jpeg_default_qtables‘错误的解决方案

操作系统:kylinV10 opencv版本:4.2.0 在编译opencv4.2.0的版本时,出现undefined reference to `jpeg_default_qtables’的错误提示,导致openc编译中断,不能继续编译,所以这个错误必须解决。 解决方案 查看错误的名字,根据名字分析,很有可能是当前系统中没有安装jpeg第三方库,到 http://www.ijg.org/上下载最新的源码包 jpegsrc.v9e.tar.gz,按如下顺序开始编译安装: tar -xzvf jpegsr.

jndingxin的专栏 5105

Linux的权限

Linux权限的详细介绍!

学代码的咸鱼的博客 1283

【keil5和STC-ISP】保姆级下载安装教程

点击下载中的产品下载。然后就会看到如下界面:可以看到,提供了针对不同芯片架构的四套独立开发工具。:你使用的51单片机,其核心就是。C51套件里的编译器是专门为这个架构优化的。:如果安装了MDK-Arm,你在创建新项目时将像“AT89C51”这样的51系列芯片型号,无法进行开发。进入如下界面:双击下载 → 双击运行安装 → 同意协议并下一步 → 使用默认安装路径 → 完成安装。

深耕CV 1640

Linux终端权限设置详解

Linux终端权限设置详解

Leon_Jinhai_Sun的博客 304

李航《统计学习方法》课后习题答案(第2版)

李航《统计学习方法》课后习题答案(第2版) 章节 链接 第1章 统计学习及监督学习概论 点击进入 第2章 感知机 点击进入 第3章 k近邻法 点击进入 第4章 朴素贝叶斯法 点击进入 第5章 决策树 点击进入 第6章 逻辑斯谛回归与最大熵 点击进入 第7章 支持向量机 点击进入 第8章 提升方法 点击进入 第9章 EM算法及其推广 点击进入 第10章 隐马尔可夫模型 点击进入 第11章 条件随机场 点击进入     也可进入我的个人主页查看分类专栏

weixin_43646592的博客 2万+

蓝牙攻防实战:蓝牙技术详解

蓝牙作为轻量级、低功耗的无线通信技术,其设计兼顾了效率与灵活性,但也留下了诸多安全隐患。随着物联网设备的爆发式增长,蓝牙的攻击面也在不断扩大。理解其底层通信机制、协议栈结构以及配对加密逻辑,是提升无线安全防护能力的关键。

idlecloud0105的博客 739

Linux基本操作

在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。终端里面输入的通配符是由 Shell 处理的,不是由所涉及的命令语句处理的,它只会出现在命令的“参数值”里(它不能出现在命令名称里, 命令不记得,那就用。

李昭的博客 1437

063.CI/CD for ML:给YOLO项目装上自动化流水线

本文分享了为YOLO目标检测项目搭建CI/CD流水线的实践经验。作者通过手动调试模型导出问题的经历,意识到重复验证工作比模型改进更耗时,提出需要自动化解决方案。文章详细介绍了四阶段流水线设计:1)代码质量检查;2)快速训练验证;3)推理性能基准测试;4)模型注册部署。同时总结了环境不一致、GPU资源争抢等常见问题及解决方案,建议从简单规则开始逐步完善,强调模型版本管理的重要性。实施后不仅提高了效率,还促使团队形成更规范的开发习惯。

2603_95664987的博客 233

【Linux】Linux权限

Linux权限,详细讲解:一,shell命令介绍 二,Linux权限 1. Linux下的用户 2. 命令su 3. Linux权限管理 3.1. 文件访问者 4. 修改权限 1. 修改目标属性 2. 修改拥有者 chown chgrp 5. 缺省权限 umask t 粘滞位

tan_run的博客 2639

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Linux】权限

本期博客讲解内容有:为什么需要权限,Linux下角色问题和用户问题,文件权限属性问题,权限的指令操作,没有权限的表现,以及权限的三个子问题

2401_86785052的博客 1098

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Linux】Linux 权限

本篇文章主要简要讲解 Linux 权限

L_0907的博客 1384

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Linux】目录权限和默认权限

上期介绍了Linux的文件权限,这期我们仔细来说说Linux环境下目录权限(粘值位)和默认权限。

m0_70811813的博客 3777

Linux权限

Linux权限

wangtianTTT的博客 1675

linux 程序的权限设置,Linux权限设置详解

看完鸟哥的Linux私房菜,对Linux有了更深的了解,特别是权限控制这一方面,特此总结,记录一下。本文适合对Linux权限一知半解的人,不适合完全不同Linux权限的人,只是提点,不会特别详细,详细内容请看鸟哥的Linux私房菜。一,文件与目录的普通权限首先来说说Linux下面的最普通也是最常用的权限,r:4(读),w:2(写),x:1(执行)。对于文件和目录来说,这三个权限分别代表不同的操作:...

weixin_28775337的博客 3209

Linux权限认识

Linux权限认识

weixin_57248528的博客 1326

怎样设置linux权限,Linux 权限设置chmod

Linux中设置权限,一般用chmod命令1、介绍权限设置chmod功能:改变权限命令。常用参数:1=x(执行权execute) 2=w(写权write) 4=r(读权Read)setuid 设置后,文件拥有文件所有者的权限如root权限setgid 设置后,目录下创建的文件件拥有此目录所属组的权限stickybit 设置后,文件不可被删除操作提示:chmod 参数文件或目录名2、文件权限解析如上...

weixin_31720227的博客 4228

linux系统权限640,linux权限及权限管理

一、权限管理1.权限的类型:r:读权限,对文件来说可以读取里面的内容,对目录来说可以列出目录下的文件。w:写权限,对文件来说可以修改文件的内容,对目录来说可以创建删除目录下的文件。x:执行权限,对文件来说可以运行这个文件,对目录来说可以进入这个目录。2.文件的三类用户u:属主,表示此文件属于这个用户。g:属组,表示这个文件属于此组。o:其他用户。3.chown用法chown改变文件的属主、属组,只...

weixin_42500818的博客 7632

linux中600是什么权限,linux系统中文件的权限

查看文件权限的语句:在终端输入:ls -l xxx.xxx (xxx.xxx是文件名)那么就会出现相类似的信息,主要都是这些:-rw-rw-r--一共有10位数其中: 最前面那个 - 代表的是类型中间那三个 rw- 代表的是所有者(user)然后那三个 rw- 代表的是组群(group)最后那三个 r-- 代表的是其他人(other)然后我再解释一下后面那9位数:r 表示文件可以被读(read)w...

weixin_30711615的博客 4116
上一篇: Linux第一课:Linux的基本命令和底层结构的理解
下一篇: 【C++】继承和多态
虚无的纽扣
博客等级 码龄1年 405粉丝 36原创
评论 22
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值