在上一篇的内容中我们学习到了Linux系统命令相关的知识及其相关的扩展内容,本期我们将学习Linux基础的另一个重要部分:Linux系统权限管理

        作者的个人gitee:楼田莉子 (riko-lou-tian) - Gitee.com

目录

权限概念及必要性

        什么是权限

        为什么要有权限

        权限=人+文件属性

        su指令

Linux的权限管理        

        文件访问者

        那么Linux系统下为什么会有系统组呢?

        所属组的核心作用

        用户与组的关系

        组信息存储位置

 关键命令总结:

        文件属性及其权限

文件访问权限相关的设置

        1、chmod

        2、chown

        3、chgrp

         file指令

        使用sudo分配权限

        目录的权限

关于权限的总结

粘滞位(选择性学习) ​编辑

        三个问题


权限概念及必要性

        什么是权限

        权限是访问一种资源的时候决定我们能还是不能的问题。

        为什么要有权限

        那么为什么Linux要有权限呢?因为Linux系统是一个多用户系统,同时会有多个人来登录访问。如果没有权限之分,那么随意一个用户就可以对别人的数据进行增删查改,这是极其危险的行为。

        因此,权限的本质就是为了更好的用户管理

        权限=人+文件属性

        权限是针对特定群体的——与人有关。因为Linux系统下一切皆文件,因此其目标主题必然天然带有一定的属性才能访问

        文件的属性有三类:r(可读)、w(可写)、x(可执行)

        Linux下有两种类型的用户:普通用户、root用户。

        root用户:可以在Linux系统上做任何事情不受限制。

        普通用户:在Linux系统下做有限的事情。

        在Linux系统中。root用户的提示符是“#”,普通用户的提示符是“$”

        su指令

        语法:

su[用户名]

        功能:切换用户。

        比如su user就会从root用户转换为user用户。要从普通⽤⼾user切换到root⽤⼾则使⽤ su root(root可以省略),此时系统会提⽰输⼊root⽤⼾的⼝令。

        但是当我们作为普通账号要进行安装软件的时候,酒席要将软件拷贝到指定目录下,但是OS会阻止我们拷贝,那是否只能让管理员来进行安装呢?不是的。有一个命令sudo可以解决。

        sudo命令是普通账户进行短暂提权的命令。

        普通用户默认是无法使用sudo的(自己安装的虚拟机除外)。

        什么是白名单呢?与黑名单相对,无条件同意。普通账户默认不是白名单 

        root账户可以决定哪个普通用户是白名单内成员

Linux的权限管理
        

        文件访问者

        Linux系统下的角色:

        ⽂件和⽂件⽬录的所有者:u---User(中国平⺠ 法律问题)
        ⽂件和⽂件⽬录的所有者所在的组的⽤⼾:g---Group(不多说)
        其它⽤⼾:o---Others (外国⼈)

        具体如下:

        那么Linux系统下为什么会有系统组呢?

        因为在 Linux 系统中,用户的所属组(User Groups) 是权限管理的核心机制之一,它通过组(Group) 将用户分类,实现批量分配文件/目录的访问权限

        所属组的核心作用

        1、权限共享:同组用户自动继承该组对文件/目录的权限(读/写/执行),无需单独配置每个用户。

        2、资源隔离:不同组的用户无法访问彼此的资源(除非显式授权)

        3、简化管理:修改组的权限 = 批量修改组内所有用户的权限

        用户与组的关系

        1、主组

  • 每个用户必须属于且仅有一个主组(创建用户时自动生成同名组)。

  • 用户新建文件时,文件的默认所属组 = 用户的主组。

  • 查看命令:id 或 groups

    $ id alice
    uid=1001(alice) gid=1001(alice) groups=1001(alice),1005(developers)
    # gid=1001(alice) → 主组是 "alice"

        2、附加组

  • 用户可加入零个或多个附加组,获得额外的权限。

  • 示例:用户 alice 加入 developers 组后,可访问该组授权的项目目录。

  • 管理命令:

    usermod -aG developers alice  # 将 alice 添加到 developers 组(不改变主组)
    groups alice                  # 查看 alice 的所有所属组

        组信息存储位置
文件作用示例内容
/etc/passwd记录用户的 UID 和主组 GIDalice:x:1001:1001::/home/alice:/bin/bash
/etc/group定义组及其成员列表developers:x:1005:alice,bob
(组名:密码占位符:GID:成员列表)

解析 /etc/group

  • developers:组名

  • x:加密密码占位符(实际密码在 /etc/gshadow

  • 1005:组 ID (GID)

  • alice,bob:组成员列表(用逗号分隔)

 关键命令总结:
命令作用
groups [用户名]查看用户的所有所属组
id [用户名]显示用户 UID、GID 及组列表
usermod -aG 组名 用户名将用户添加到附加组
gpasswd -d 用户 组名从组中移除用户
newgrp 组名临时切换用户的主组(需有权限)

        文件属性及其权限

        ⽂件类型:

        ◦ d:⽂件夹

        ◦ -:普通⽂件

        ◦ l:软链接(类似Windows的快捷⽅式)

        ◦ b:块设备⽂件(例如硬盘、光驱等)

        ◦ p:管道⽂件

        ◦ c:字符设备⽂件(例如屏幕等串⼝设备)

        ◦ s:套接⼝⽂件

基本权限:

        ◦ 读(r/4):Read对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览该⽬录信息的权限

        ◦ 写(w/2):Write对⽂件⽽⾔,具有修改⽂件内容的权限;对⽬录来说具有删除移动⽬录内

⽂件的权限

        ◦ 执⾏(x/1):execute对⽂件⽽⾔,具有执⾏⽂件的权限;对⽬录来说,具有进⼊⽬录的权

        ◦ “—”表⽰不具有该项权限

        Linux中的举例说明

        那么如何表达一个文件的权限?

文件访问权限相关的设置

        1、chmod

        语法:

chmod [参数] 权限 ⽂件名 

        功能:设置⽂件的访问权限
        常⽤选项:

         R -> 递归修改⽬录⽂件的权限

        说明:只有⽂件的拥有者和root才可以改变⽂件的权限

        chmod命令权限值的格式:

          ⽤⼾表⽰符+/-=权限字符

         +:向权限范围增加权限代号所表⽰的权限

         -:向权限范围取消权限代号所表⽰的权限

         =:向权限范围赋予权限代号所表⽰的权限

         ⽤⼾符号:

         u:拥有者

         g:拥有者同组⽤

         o:其它⽤⼾

         a:所有⽤⼾

        举例说明:

        2、chown

        语法:

chown [参数] ⽤⼾名 ⽂件名 

        功能:修改⽂件的拥有者

        3、chgrp

        语法:

chgrp [参数] ⽤⼾组名 ⽂件名

        功能:修改⽂件或⽬录的所属组

        常⽤选项:-R 递归修改⽂件或⽬录的所属组

        4、unmask

        语法:

格式:umask 权限值  

        功能:

        查看或修改⽂件掩码

        新建⽂件夹默认权限=0666

        新建⽬录默认权限=0777

        但实际上你所创建的⽂件和⽬录,看到的权限往往不是上⾯这个值。原因就是创建⽂件或⽬录的

        时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的⽂件权限是: mask &

~umask

        说明:将现有的存取权限减去权限掩码后,即可产⽣建⽴⽂件时预设权限。超级⽤⼾默认掩码值为0022,普通⽤⼾默认为0002
       

         file指令

语法:

file [选项] ⽂件或⽬录...

功能:辨识⽂件类型

常⽤选项:

• -c:详细显⽰指令执⾏过程,便于排错或分析程序执⾏的情形。

• -z:尝试去解读压缩⽂件的内容。

        使用sudo分配权限

        (1)修改/etc/sudoers ⽂件分配⽂件

# chmod 740 /etc/sudoers
# vi /etc/sudoer

        (2)使⽤ sudo 调⽤授权的命令
 

$ sudo –u ⽤⼾名 命令

        目录的权限

        目录有三种权限:

        可执⾏权限: 如果⽬录没有可执⾏权限, 则⽆法cd到⽬录中.

        可读权限: 如果⽬录没有可读权限, 则⽆法⽤ls等命令查看⽬录中的⽂件内容.

        可写权限: 如果⽬录没有可写权限, 则⽆法在⽬录中创建⽂件, 也⽆法在⽬录中删除⽂件.

        于是, 问题来了~~ 换句话来讲, 就是只要⽤⼾具有⽬录的写权限, ⽤⼾就可以删除⽬录中的⽂件, ⽽不论这个⽤⼾是否有这个⽂件的写权限.

        这好像不太科学啊, 我张三创建的⼀个⽂件, 凭什么被你李四可以删掉?

我们用下面这段进行验证

为了解决这个不科学的问题, Linux引⼊了粘滞位的概念


关于权限的总结

• ⽬录的可执⾏权限是表⽰你可否在⽬录下执⾏命令。

• 如果⽬录没有 -x 权限,则⽆法对⽬录执⾏任何命令,甚⾄⽆法 cd 进⼊⽬, 即使⽬录仍然有 -r 读

权限(这个地⽅很容易犯错,认为有读权限就可以进⼊⽬录读取⽬录下的⽂件)

• ⽽如果⽬录具有 -x 权限,但没有 -r 权限,则⽤⼾可以执⾏命令,可以 cd 进⼊⽬录。但由于没有

⽬录的读权限

• 所以在⽬录下,即使可以执⾏ ls 命令,但仍然没有权限读出⽬录下的⽂档。

粘滞位(选择性学习)
 

        当⼀个⽬录被设置为"粘滞位"(⽤chmod +t),则该⽬录下的⽂件只能由

1. 超级管理员删除

2. 该⽬录的所有者删除

3. 该⽂件的所有者删除

留下三个问题:

        三个问题

1、进入一个目录需要什么权限?

2、为什么我们新建一个文件默认权限是我们看到的那个样子?

3、没有rmx我们能删除这个文件吗?

        这些部分我后面会补充。

        本期内容就到这里,喜欢请点个赞谢谢

封面图自取:

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

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

相关文章

Web3.0 能为你带来哪些实质性的 改变与突破

如今各种大厂裁员消息层出不穷,今年又添飞书、剪映、微软、思科... 这有一张网友整理的去年互联网大厂裁员裁员信息表: 目前国内很多大厂都在裁员,非常现实、且越来越多 35 技术人,正在面临这样的问题,那么Web3.0 确实…

doker centos7安装1

1.什么是doker Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何支持 Docker 的操作系统上,实现 “一次构建,到处运行”。 容器是一种轻量级的虚拟化技术&#xff0c…

自动化面试题

1、什么是测试套件测试套件是多个测试用例的集合。2、搭建接口自动化框架中,你遇到最大的难点是什么,以及怎么解决的?测试数据动态管理难点:接口依赖动态参数(如Token、订单ID),数据无法硬编码.解决方案:使用关联提取(如正则提取响应中的Tok…

【Linux】LVS(Linux virual server)环境搭建

一、LVS的运行原理1.1 LVS简介LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基于LVSkeepalived实现LVS 官网: http://www.linuxvirtualserver.org/ LVS 相关术语 VS: Virtual Server…

算法竞赛备赛——【图论】求最短路径——Dijkstra

Dijkstra 用来计算从一个点到其他所有点的最短路径的算法&#xff0c;是一种单源最短路径算法。也就是说&#xff0c;只能计算起点只有一个的情况。Dijkstra的时间复杂度是O (|v|^2)&#xff0c;它不能处理存在负边权的情况。 邻接矩阵存图 #include<iostream> using …

影刀 RPA:批量修改 Word 文档格式,高效便捷省时省力

在日常办公和文档处理中&#xff0c;Word 文档格式的统一和规范是许多企业和个人用户的重要需求。无论是撰写报告、制作提案&#xff0c;还是整理资料&#xff0c;都需要确保文档格式的一致性。然而&#xff0c;手动修改多个 Word 文档的格式不仅耗时费力&#xff0c;还容易因疏…

GitLab 社区版 10.8.4 安装、汉化与使用教程

一、GitLab 安装 GitLab 提供了集成所需软件的 RPM 包&#xff0c;简化了安装流程。我们选择安装社区版&#xff08;CE&#xff09;10.8.4&#xff0c;可通过官方网站或国内镜像源&#xff08;如清华镜像&#xff09;获取安装包。 1. 准备工作 首先创建工具目录并进入&#…

[硬件电路-64]:模拟器件 -二极管在稳压电路中的应用

二极管在稳压电路中的应用主要基于其单向导电性和特定类型二极管&#xff08;如稳压二极管&#xff09;的电压稳定特性。以下是详细解释&#xff1a;一、普通二极管的稳压作用&#xff08;有限场景&#xff09;正向导通压降的利用&#xff1a;原理&#xff1a;普通二极管在正向…

【Linux】重生之从零开始学习运维之Nginx

安装apt/yum安装apt imstall nginx yum install nginxRocky源码编译安装基础编译环境yum install gcc make gcc-c glibc glibc-devel pcre pcre-devel openssl openssldevel systemd-devel zlib-devel yum install libxml2 libxml2-devel libxslt libxslt-devel php-gd gd-deve…

主流 MQ 的关键性能指标

常用消息队列&#xff08;MQ&#xff09;的“数量级”通常围绕吞吐量&#xff08;TPS&#xff0c;每秒处理消息数&#xff09;、消息堆积能力、延迟三个核心指标展开&#xff0c;不同MQ因设计目标&#xff08;高吞吐、低延迟、高可靠等&#xff09;不同&#xff0c;数量级差异显…

[NIPST AI]对抗性机器学习攻击和缓解的分类和术语

原文link&#xff1a;https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-2e2025.pdf Introduction 人工智能&#xff08;AI&#xff09;系统在过去几年中持续全球扩展。这些系统正在被众多国家开发并广泛部署于各自的经济体系中&#xff0c;人们在生活的许多领域都获得了更多使…

[深度学习] 大模型学习3上-模型训练与微调

在文章大语言模型基础知识里&#xff0c;模型训练与微调作为大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;应用构建的主要方式被简要提及&#xff0c;本系列文章将从技术原理、实施流程及应用场景等维度展开深度解析。相关知识的进一步参考见&#x…

Claude Code 启动提示 Note: Claude Code might not be available in your country. 解决

如下图所示 主播参考了在别的地方看来的解决方案&#xff08;并非主播不想标注来源&#xff0c;主要是忘记是哪里看来的了&#xff0c;下班就忘记了&#xff0c;懒得找了&#x1f62d;&#xff0c;如果后续找到会补上的&#xff09;。 好了&#xff0c;开始正文&#xff0c;开始…

Unity VR多人手术系统恢复3:Agora语音通讯系统问题解决全记录

&#x1f3af; 前言 这是一个Unity多人VR手术模拟项目&#xff0c;已经搁置了近两年时间。最近重新启动了这个项目&#xff0c;然而在恢复过程中却遇到了些的技术障碍。 项目重启遇到的挑战 当我们重新部署和测试系统时&#xff0c;发现原本运行良好的Agora语音通讯功能完全…

sqli-labs靶场通关笔记:第46-53关 order by注入

目录 第46关 order by注入 第47关 闭合的order by注入 第48关 无报错回显的数字型order by注入 第49关 无报错回显的闭合型order by注入 第50关 基于order by的堆叠注入 第51关 闭合的报错注入或堆叠注入 第52关 数字型盲注或堆叠注入 第53关 闭合的盲注或堆叠注入 第…

cdh6.3.2的hive使用apache paimon格式只能创建不能写报错的问题

前言根据官网paimon安装教程&#xff0c;看上去简单&#xff0c;实则报错阻碍使用的信心。 解决方法原带的jars下的zstd开头的包旧了&#xff0c;重新下载zstd较新的包单独放到每个节点的hive/lib下;然后将hdfs yarn用户下的mr-framework.tar.gz中的zstdjar包替换成新的版本。重…

【Vue进阶学习笔记】实现图片懒加载

创建Vue项目 首先确保你已安装Vue CLI&#xff0c;然后创建一个新的Vue 3项目&#xff1a; npm init vuelatest安装依赖 安装vueuse/core库&#xff0c;它提供了useIntersectionObserver组合式API&#xff1a; cnpm install cnpm install vueuse/core创建指令文件夹和文件 在sr…

深入理解 synchronized

深入理解 synchronized 引言&#xff1a;synchronized的核心地位 在Java并发编程中&#xff0c;synchronized关键字是实现线程安全的基石。自JDK 1.0引入以来&#xff0c;它经历了从"重量级锁"到"自适应锁"的进化&#xff0c;如今已成为兼顾安全性与性能的…

C语言字符串相关函数

C语言笔记内容提要数组字符串基本操作字符串相关函数综合案例&#xff1a;学生成绩管理系统数组字符串基本操作在用格式化说明符%s进行输入输出时&#xff0c;其输入输出项均为数组名。但在输入时&#xff0c;相邻两个字符串之间要用空格分隔&#xff0c;系统将自动在字符串后加…

从零开始:用Python库轻松搭建智能AI代理

为什么要关注AI代理&#xff1f; “Agentic AI”&#xff08;智能代理&#xff09;正在悄然改变我们的工作方式。想象一下&#xff0c;一个AI助手不仅能帮你查航班、订机票&#xff0c;还能自动安排行程、发邮件、生成日报——就像一个效率极高的“虚拟助理”团队。 对于测试工…