深入解析Linux权限管理:从基本原理到应用

目录

Shell 命令及运行原理

Shell 与 Kernel

Linux 权限的概念

命令提示符

Linux 权限管理

1. 访问者的分类 ugo

2. 类型和访问权限

3. 权限值表示方法

4. chmod 访问权限设置

掩码命令:umask

5.目录权限

粘滞位:


文章手稿见文末

Shell 命令及运行原理

Shell 与 Kernel

Linux 严格意义上讲是一个操作系统的核心(Kernel),但一般用户不能直接使用 Kernel,而是通过 Kernel 的“外壳”程序,即 Shell,与 Kernel 进行通信。

Shell 的定义:

  • 命令行解释器 (Command Interpreter):将用户的命令翻译给内核 (Kernel) 处理,同时将内核的处理结果翻译给用户。

举例

  • 在 Windows 上,我们通过图形接口 (GUI) 操作系统。而在 Linux 上,用户通过 Shell 输入命令,Shell 解析命令并交给 Kernel 执行。

帮助理解Shell 就像是操作系统内核和用户之间的“媒婆”,负责传达信息和执行操作

Linux 权限的概念

Linux 下有两种用户:超级用户 (root) 和普通用户。

  • 超级用户 (root):可以在 Linux 系统下做任何事情,不受限制。
  • 普通用户:只能做有限的事情。

命令提示符

  • 超级用户的命令提示符是#
  • 普通用户的命令提示符是$

切换用户的命令

  • 使用 su [用户名] 命令。
    • 从 root 用户切换到普通用户 usersu user
    • 从普通用户 user 切换到 root 用户:su (默认 root)

Linux 权限管理

权限=人+事物属性

1. 访问者的分类 ugo
分类符号解释
文件和目录的所有者uUser
文件和目录的所有者所在组的用户gGroup
其它用户oOthers
2. 类型和访问权限

文件类型

符号解释
d文件夹
-普通文件
l软链接 (类似 Windows 快捷方式)
b块设备文件 (如硬盘、光驱等)
p管道文件
c字符设备文件 (如屏幕等串口设备)
s套接口文件

基本权限

符号权限解释
rRead,对文件而言,读取文件内容权限;对目录而言,浏览该目录信息权限
wWrite,对文件而言,修改文件内容权限;对目录而言,删除和移动目录内文件的权限
x执行Execute,对文件而言,执行文件权限;对目录而言,进入目录的权限
-拥有该项权限
3. 权限值表示方法
表示方法解释
字符表示方法rwx
8 进制数值表示方法755

八进制操作

默认起始是666和777,下面让我们来进行一些尝试

关于超级用户root :

4. chmod 访问权限设置

修改权限命令:chmod

  • 功能: 设置文件的访问权限。
  • 格式chmod [参数] 权限 文件名
  • 常用选项-R 递归修改目录文件的权限

用户表示符与权限字符

符号解释
+增加权限
-取消权限
=赋予权限

用户符号

符号解释
u拥有者
g拥有者同组用户
o其它用户
a所有用户

实例

给所有用户赋权的三种复合使用方法

chmod a=x /home/abc.txt  # 设置文件所有用户有执行权限
chmod 755 /home/abc.txt  # 使用三位8进制表示法
chmod u+x,g+x,o+wx ./abc3.txt

修改文件拥有者命令:chown

  • 功能: 修改文件的拥有者。
  • 格式chown [参数] 用户名 文件名
  • 实例
chown user1 f1
chown -R user1 filegroup1

 

一个文件的创建者和拥有者一定是同一个人吗?

通过我们刚才修改文件的拥有者,我们就能得出 —— 不一定。

修改文件或目录所属组命令:chgrp

  • 功能: 修改文件或目录的所属组。
  • 格式chgrp [参数] 用户组名 文件名
  • 常用选项-R 递归修改文件或目录的所属组
  • 实例
chgrp users /abc/f2

掩码命令:umask

为什么创建目录的默认权限是 775,而创建普通文件的默认权限是 664 ?

不同系统可能有差异吗?

创建的时候为什么不可以都是 777?

这些都是因为权限掩码的存在。

其中的0002就是掩码

  • 功能: 查看或修改文件掩码。

  • 新建文件默认权限:
    • 新建文件夹默认权限:0666
    • 新建目录默认权限:0777
    • 默认掩码 0002

实例

umask 755     # 设置掩码
umask         # 查看当前掩码
umask 044     # 设置掩码

掩码的计算:取反 &

 

file 指令

  • 功能说明: 辨识文件类型
  • 语法file [选项] 文件或目录...
  • 常用选项
选项解释
-c详细显示指令执行过程
-z尝试解读压缩文件的内容

使用 sudo 分配权限

  1. 修改 /etc/sudoers 文件分配权限
  2. 使用 sudo 调用授权的命令
  • 实例:
sudo -u 用户名 命令
sudo -u root /usr/sbin/use
5.目录权限

我们来去掉r 权限,看看到底能不能进入这个 dir:

如果目录只没有 r 权限,允许进入、允许在该目录下创建(写入)文件,只不过是不允许查看

💡 Linux 下一切皆文件,目录也是文件。再结合 "文件 = 内容 + 属性" 去理解。

目录里面保存的是部分文件的 "属性" 。

权限解释
可执行权限如果目录没有可执行权限,则无法 cd 到目录中。
可读权限如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容。
可写权限如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
粘滞位

共享目录

Linux 下可以存在一些目录,拥有者和所属组是 root,

其他人允许以 other 的身份在该目录下进行文件的创建、读取、删除和修改等操作:

想在共享目录下形成临时文件,但又怕别人给你删了,

你可以给共享的 <目录> 加上粘滞位来解决。

注意,是给目录加粘滞位!即你共享哪个目录,你就在哪个目录下加上粘滞位。

粘滞位

💭 以 root 身份给 all 目录添置粘滞位:

这样用户就无法随意删了

当一个目录设置为"粘滞位" (用 chmod +t),则该目录下的文件删除权限如下:

  1. 超级管理员可以删除
  2. 目录所有者可以删除
  3. 文件所有者可以删除

实例

目录设置了粘滞位 t 后,作为 other 就无法随意地删除其他用户的文件了: 

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

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

相关文章

Unity OpenCVForUnity 安装和第二个案例详解 <二>

目录 一、前言 二、场景介绍 1.WebCamTextureToMatExample脚本 2.FpsMonitor脚本 三、 结构体Scaler 四、找到相机并使用 1.相机的启用 2.格式转换 a.把webCamTexture转换成Mat b.把Mat转换成Texture2D 五、脚本组合 六、作者的碎碎念 一、前言 第二个案例&#xf…

大语言模型的昨天、今天和明天

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术突飞猛进&#xff0c;其中大语言模型&#xff08;LLM&#xff09;无疑是最引人瞩目的技术之一。从OpenAI的GPT系列到Meta的Llama模型&#xff0c;大语言模型的发展不仅改变了人们对AI的认知&#xff0c;也在各行…

通过防抖动代码解决ResizeObserver loop completed with undelivered notifications.

通过防抖动代码解决ResizeObserver loop completed with undelivered notifications. 一、报错内容二、解决方案解释&#xff1a; 一、报错内容 我通过el-tabs下的el-tab-pane切换到el-table出现的报错&#xff0c;大致是渲染宽度出现了问题 二、解决方案 扩展原生的 Resiz…

windows桌面运维----第三天

1、电脑存储位置更改&#xff1a; 操作方式&#xff1a;使用win I打开系统设置 → 系统 → 存储选项卡 → 更改新内容的保存位置&#xff1b; 2、开启存储感知&#xff1a;自动清理临时文件 操作方式&#xff1a;右键开始图标&#xff08;左下角&#xff09;➡ 系统 ➡ 存储…

每天一个数据分析题(三百七十六)- 时间序列

影响时间序列的因素不包括以下哪个&#xff1f; A. 季节变动 B. 循环波动 C. 不规则波动 D. 有效性 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案

DevOps学习回顾01-技能发展路线-岗位能力-体系认知

事为先&#xff0c;人为重–事在人为 参考来源&#xff1a; 极客时间专栏&#xff1a;DevOps实战笔记&#xff0c;作者&#xff1a;石雪峰 课程链接&#xff1a;https://time.geekbang.org/column/intro/235 时代的典型特征 VUCA VUCA 是指易变性&#xff08;Volatility&…

破局者:Codebeamer如何打破传统束缚,开启工程新纪元

飞速发展的数字时代&#xff0c;一场深刻的数字化革命正在重塑各行各业的价值链条&#xff0c;为产品开发组织带来了前所未有的挑战。随着电子技术和软件组件在产品设计中的地位日益凸显&#xff0c;传统的工程实践正经历着一场深刻的变革。为了顺应这一潮流&#xff0c;企业必…

【碳排放控排1006】碳排放控排企业名单数据集,探索绿色生产!

今天给大家分享的是国内顶级期刊2023发表论文《碳排放规制、企业减排激励与全要素生产率——基于中国碳排放权交易机制的准自然实验》中使用到的重要数据集——碳排放控排企业名单&#xff0c;该论文从企业生产效率视角对论文进行研究&#xff0c;发现碳排放权交易机制显著提升…

植物大战僵尸杂交版V2.1快速刷金币的方法(新号适用,无需自带招财猫)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 1. &#x1f4bb;游戏介绍 2. &#x1f525;快速刷取金币的办法&#xff08;我是新号测试的&#xff09; 2.1 无招财猫 2.2 有招财猫 《植物大战僵尸杂交版》是一款在原版《植物大战僵尸》基础上进行了创新的塔防…

骗小孩背单词的游戏

我小孩还没有生&#xff0c;我打算生2个&#xff0c;这样他们有竞争性。我们小时候玩过一款游戏&#xff0c;叫做编编战&#xff0c;就是通过作者进行现场在脑子里编故事&#xff0c;然后玩家&#xff0c;直接加入故事&#xff0c;通过讲述或者演绎&#xff0c;来做凭空的角色扮…

Java学习【深入解读File类:从基础到高级的完整指南】

Java学习【深入解读File类&#xff1a;从基础到高级的完整指南】 ⭐File的概述和构造方法⭐File常见的成员方法&#x1f319;构造方法&#x1f319;length()&#x1f319;getAbsoluteFile()和getPath()&#x1f319;getName()和lastModified() ⭐文件的创建和删除⭐获取并遍历 …

【OpenHarmony开发】 tracepoint的机制总结

一、tracepoint 的机制 1.1 DECLARE_HOOK 解析 DECLARE_HOOK(vendor_bond_check_dev_link,TP_PROTO(const struct bonding *bond, const struct slave *slave, int *state), TP_ARGS(bond, slave, state)); ​ // 在已经实现如下宏定义的前提下 // CONFIG_TRACEPOINTS 和 CO…

代码随想录算法训练营DAY41|背包问题 二维 、背包问题 一维、416. 分割等和子集

背包问题 二维 题目链接&#xff1a;背包问题 二维 def bag_weight_problem(n,space,weight,value):dp [[0 for i in range(space1)]for j in range(n)]for i in range(weight[0], space1):dp[0][i]value[0]for j in range(1, n):for k in range(space1):if weight[j]>k:…

力扣410.分割数组的最大值

力扣410.分割数组的最大值 分割数组 使得子数组最大值最小 凡是最小化最大值和最大化最小值的题都是二分答案二分子数组最大值 求当前数组可以分为几段 class Solution {public:int splitArray(vector<int>& nums, int k) {auto check [&](int mid) -> bo…

Leetcode Hot 100 刷题记录 - Day 1

问题描述&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 示…

AbMole带你探索颅内压力与肌肉生长的联系:一项突破性研究

在生物医学领域&#xff0c;颅内压力&#xff08;ICP&#xff09;的调控机制一直是研究的热点。最近&#xff0c;一项发表在《PLOS ONE》上的研究为我们揭示了颅内压力与后颅窝肌肉生长之间的潜在联系&#xff0c;为我们理解某些慢性头痛的成因提供了新的视角。 颅内压力的异常…

spring-boot-starter-websocket 客户端 服务端 例子

1. 添加依赖 首先&#xff0c;在pom.xml中添加spring-boot-starter-websocket依赖&#xff0c;正如你已经指出的&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId&g…

QEMU(Quick EMUlator)学习

QEMU介绍 QEMU (Quick EMUlator) 是一个开源的虚拟化软件和硬件仿真器&#xff0c;它能实现完整系统仿真或进程级仿真。QEMU 的用途广泛&#xff0c;可以用来运行不同体系结构的程序&#xff0c;测试操作系统和驱动程序&#xff0c;开发嵌入式系统&#xff0c;甚至作为云计算平…

temu跨境选品师是怎么样的一个项目?

TEMU(特穆)跨境选品师项目&#xff0c;作为一项创新的全球商品采购和选品服务&#xff0c;正在逐步改变消费者对于跨境电商产品的认知和选择方式。这个项目不仅仅是一个简单的商品推荐平台&#xff0c;更是一种以数据驱动的精准选品策略的体现&#xff0c;为消费者提供了全新的…

Spring Boot集成vavr快速入门demo

1.什么是vavr&#xff1f; 初闻vavr&#xff0c;感觉很奇怪&#xff0c;咋这个名字&#xff0c;后面看到它的官网我沉默了&#xff0c;怀疑初创团队付费资讯了UC震惊部如何取名字&#xff0c;好家伙&#xff0c;vavr就是java这四个字倒过来&#xff0c;真的是’颠覆’了java……