【Linux篇】权限管理 - 用户与组权限详解

在这里插入图片描述

一. 什么是权限?

首先权限是限制人的。 = 真实的人 + 身份角色
权限 = 角色 + 事物属性

二. 认识人–用户

Linux下的用户分为超级用户普通用户

  • root :超级管理员,几乎不受权限的约束
  • 普通用户 :受权限的约束
  • 超级用户的命令提示符是#,普通用户的命令提示符是$

命令: su [用户名]
功能: 切换用户
例如,要从root用户切换到普通用户user,则使用su user。也可以ctrl+d或者直接exit
要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输⼊root用户的密码。
普通用户切换为超级用户两种方式的区分:

  • 单独的su:只进行两者之间的身份切换,家目录不发生变化。
  • su -:以root的身份重新登陆Linux机器

普通人之间进行切换需要输入对方的密码;但root可以切换成任何人,不需要输入密码

如何不切换身份的情况下,执行更高权限的指令呢?
指令提权
sudoers:类似一张用户白名单
什么时候进行指令提权?
安装软件时,以root身份安装,任何人都可以使用,软件只需安装一次。

三. 文件属性

在这里插入图片描述
Linux下 权限 = 角色 + 事物属性
角色:
Linux下角色分为三类:

  1. 文件拥有者
  2. 文件所属组
  3. other

具体的用户:root 普通账号
角色:拥有者,所属组,other (由具体的角色扮演)

事物属性:
在这里插入图片描述

四. 权限

我们可以看到这里一行总共有九个字符。这九个字符三个为一对。
在这里插入图片描述
其中:

  • r: 表示可读权限
  • w: 表示可写权限
  • x: 表示可执行权限
  • -: 表示不具备此权限

超级用户不受权限的约束
在这里插入图片描述
例如这里的test.txt文件的拥有者是root,所属组是root,root对于test.txt文件没有读,写,执行权限,但是照样可以往test.txt文件中写入hello,并且能查看test.txt文件。

第一个位置表示是否可读,有就是r没有就是-
第二个位置表示是否可写,有就是w没有就是-
第三个位置表示是否具有可执行权限,有就是x没有就是-
所以说读,写,可执行这三个位置时固定的。

在这里插入图片描述
所以对于file.txt而言
拥有者所具有的权限是:

  • 可读
  • 可写
  • 不可执行

所属组所具有的权限是:

  • 可读
  • 可写
  • 不可执行

所属组所具有的权限是:

  • 可读
  • 不可写
  • 不可执行

权限的修改:

只有文件的拥有者和超级用户(root)才可以修改权限。

chmod
功能: 设置文件的访问权限。
格式: chmod [参数] 权限 文件名
常用选项:
用法一: 用户表示符、+ - =、权限字符

  • u:拥有者
  • g:所属组
  • o:其他人
  • a:所有用户(拥有者、所属组、其他人)
  • +:增加权限
  • -:取消权限
  • =:赋予权限

示例:
chmod u+r test.txt:给拥有者加上test.txt文件的可读权限
chmod u-w test.txt:去掉拥有者test.txt文件的可写权限
chmod u+rw,g+r,o+x test.txt:给拥有者加上可读可写权限 ,给所属组加上可读权限,给other加上可执行权限
chmod a+rwx test:给所有用户加上test.txt文件的可读,可写,可执行权限

不是你有可执行权限这个文件就能执行
Linux下能执行 = 真的是一个可执行文件 + 可执行权限
user,group,other和我自己进行身份对比的时候,依次只对比一次!

用法二:文件权限修改的八进制方案
在计算机中,是用1表示,否用0表示,在Linux中一个用户对应三个权限
在这里插入图片描述
例如sp.txt文件拥有者是sp,所对应的权限是---;所属组是sp,对应的权限是rw-
一个用户的权限全为否的话,所对应的就是---,用0,1表示就可以表示为000,000转化为八进制就是0。那么同理所属组的权限就可以表示为110,转化为八进制就是6。对于other来讲对应的八进制就是100,转化为八进制就是4。所以最终我们表示一个文件的权限就可以表示为064。
有了上面的经验,所以我们要修改一个文件的权限,就可以chmod 700 sp.txt,其中7对应的是111,0表示000。所以sp.txt文件的权限最终被修改成了rwx --- ---
在这里插入图片描述
如果我想给所属组加上rw,那么就可以chmod 760 sp.txt,其中6表示110。
在这里插入图片描述
如果想给所有人去掉所有权限chmod 000 sp.txt
总结:
修改文件权限的两种方式:

  1. chmod u/g/o/a +/- r/w/x filemane
  2. chmod 八进制 filename

不管是上面的那种该权限的方法,其实本质上都是改的文件的属性。上面我们已经说了,权限=角色+事物属性,我们可不可以修改角色呢?答案是可以的

chown指令

  • 更改拥有者
    例如我们想把sp.txt的拥有者改为root,chown root sp.txt
    在这里插入图片描述
    我们会发现不允许我们修改。原因其实很简单,就好比如我们给别人东西一样,别人也有可能不要,首先得征求别人的意见。但是在liunx中你想给别人东西征求别人意见这样的事无法实现。那怎么办呢?
    答案是强制操作 指令提权sudo chown root sp.txt

chgrp指令

  • 更改所属组
    更改所属组和上面更改拥有者一样,也需要强制操作 指令提权sudo chgrp root sp.txt

拥有者和所属组可不可以同时改呢?答案是可以的
sudo sp:sp sp.txt我们就会发现文件的拥有者和所属组又变成了sp;

拓展: 如果对于一个文件没有读权限,那么用任何工具打开都会看不到内容。权限限制的是人

关于权限的三个问题

  1. 目录权限
    a. 如果我想进入一个目录需要什么权限?r权限
    b.r对目录是什么意思? 无法查看指定目录下的文件信息
    c.w对于目录? 无权在指定目录内部新建文件,删除文件,修改文件名的操作。

  2. 缺省权限
    在这里插入图片描述
    我们新建一个文件会发现它的权限默认是664110110100
    在这里插入图片描述
    我们新创建一个目录,会发现它的默认权限是775

知识点: 普通文件,起始权限:666,目录文件,起始权限:777
但是问题又来了,为什么我们新建的文件起始权限是664,目录是775呢?
原因是在我们liunx系统中存在默认的权限掩码umask
在这里插入图片描述
为什么会有权限掩码?
我们可以修改权限掩码,达到修改Liunx中文件缺省权限的问题
umask0002我们不必关心第一个零,只需关心umask的后三位。002即000 000 010的二进制位
结论:
最终权限(默认)= 起始权限 &(~umask)
比如普通文件的起始权限666-110 110 110,umask是000 000 010。所以最终权限就是664 - 110 110 100
在这里插入图片描述
如何改umask?
umask直接后面跟数字 ,例如 umask 0777(第一个0不写也可以)umask就被改成777了777的二进制表示方式为111 111 111,取反就为000 000 000,任何数与0按位与为0,所以我们现在创建一个新的文件它的权限就为全0了。
在这里插入图片描述
为什么有umask呢?
原因是人的需求是一种变化的,如果你的程序设计的过于死板,缺省权限,目录权限都是固定的样式,一旦碰到有特殊需求的人,就会很不方便。
所以有了umask:首先没有坏处,其次增加了权限新需求的灵活性。

粘滞位

当我们新建一个用户时,系统会自动在/home路径下创建一个用户的家目录,所有家目录的权限都是700,这就意味着,其他普通用户无法进入我的家目录,也不能查看我的家目录下的所有文件,更不能对我的家目录中的文件进行修改、删除,也不能在我的家目录中创建文件。
在这里插入图片描述
但有的时候,我们多个用户想进行文件数据的共享。家目录的特性,导致我们所建立的共享目录不能在任何一个用户的家目录下。那建立在哪里合适呢?答案是,通过超级用户在根目录下建立一个共享文件(根目录的拥有者和所属组都是root,普通用户作为other没有写权限,所以无法在根目录下创建文件),其他普通用户都以其他人的身份去操作这个共享文件。因此,这里还需要把共享文件针对其他人的权限设置为7,以保证普通用户可以进入到这个目录,并且查看该目录下的所有文件、在该目录下创建文件等。

于是,问题来了~~换句话来讲,就是只要用户具有目录的写权限w,就意味着可以在该目录下创建、删除、修改文件。(一个文件能否能够被删除是由它所在的目录决定的,并不由该文件本身所决定)

共享目录对其他人的权限都设置为7,这就意味着所有其他普通用户都可以删除共享目录下的任何文件。换句话说就是:用户A在共享目录下创建了一个文件,而用户B则可以随意的删除A用户所创建的文件。这好像不太科学啊,我张三创建的⼀个文件,凭什么被你李四可以删掉?如何解决这个问题呢?可能会有人想着,那就删除共享目录针对other的写权限w,但是这样我们同时也无法在共享目录下创建文件,就是失去了共享的意义。

为了解决上面的问题,引出了一个新的权限位:粘滞位。 粘滞位的出现,避免了前面提到的互删这种不合理的操作。可以给共享目录针对other角色加上粘滞位权限。

  • chmod o+t 目录名:给共享目录的other加上粘滞位权限

任何用户在设置了粘滞位的目录下

  1. 自己只能删自己的文件,其他人无法删除
  2. root无视
  3. 粘滞位只能给目录设置,普通文件不能设置
  4. t是一种特殊的x

最后其实系统在根目录下已将帮我们建了一个共享的目录:
在这里插入图片描述


如果这篇文章对你有帮助,记得点赞,评论+收藏 ,最后别忘了关注作者,作者将带领你探索更多关于Liunx方面的问题。

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

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

相关文章

【RDMA】RDMA read和write编程实例(verbs API)

WRITE|READ编程(RDMA read and write with IB verbs) (本文讲解的示例代码在:RDMA read and write with IB verbs | The Geek in the Corner) 将 RDMA 与verbs一起使用非常简单:首先注册内存块&#xff0c…

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称:UPIrregularWidgets 插件包含以下功能 你可以点击任何图片,而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能,复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…

洛谷P2670扫雷游戏(Java)

三.P2670 [NOIP2015 普及组] 扫雷游戏 题目背景 NOIP2015 普及组 T2 题目描述 扫雷游戏是一款十分经典的单机小游戏。在 n 行 m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩…

如何加强游戏安全,防止定制外挂影响游戏公平性

在现如今的游戏环境中,外挂始终是一个困扰玩家和开发者的问题。尤其是定制挂(Customized Cheats),它不仅复杂且隐蔽,更能针对性地绕过传统的反作弊系统,对游戏安全带来极大威胁。定制挂通常是根据玩家的需求…

概率论相关知识随记

作为基础知识的补充,随学随记,方便以后查阅。 概率论相关知识随记 期望(Expectation)期望的定义离散型随机变量的期望示例:掷骰子的期望 连续型随机变量的期望示例:均匀分布的期望 期望的性质线性性质期望的…

DICOM MPPS详细介绍

文章目录 前言一、常规检查业务流程二、MPPS的作用三、MPPS的原理1、MPPS与MWL2、MPPS服务过程 四、MPPS的实现步骤1、创建实例2、传递状态 五、总结 前言 医院中现有的DICOM MWL(Modality Worklist)已开始逐渐得到应用,借助它可以实现病人信息的自动录入&#xff0…

Secured Finance 推出 TVL 激励计划以及基于 FIL 的稳定币

Secured Finance 是新一代 DeFi 2.0 协议,其正在推出基于 FIL 的稳定币、固定收益市场以及具有吸引力的 TVL 激励计划,以助力 Filecoin 构建更强大的去中心化金融生态体系,并为 2025 年初 Secured Finance 协议代币的推出铺平道路。Secure Fi…

FPGA Xilinx维特比译码器实现卷积码译码

FPGA Xilinx维特比译码器实现卷积码译码 文章目录 FPGA Xilinx维特比译码器实现卷积码译码1 Xilinx维特比译码器实现2 完整代码3 仿真结果 MATLAB (n,k,m)卷积码原理及仿真代码(你值得拥有)_matlab仿真后代码-CSDN博客 MATLAB 仿真…

Linux 权限管理:用户分类、权限解读与常见问题剖析

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 🚩用通俗易懂且不失专业性的文字,讲解计算机领域那些看似枯燥的知识点🚩 目录 💯L…

rabbitmq 安装延时队列插件rabbitmq_delayer_message_exchange(linux centOS 7)

1.插件版本 插件地址:Community Plugins | RabbitMQ rabbitmq插件需要对应的版本,根据插件地址找到插件 rabbitmq_delayer_message_exchange 点击Releases 因为我rabbitmq客户端显示的版本是: 所以我选择插件版本是: 下载 .ez文…

遗传算法与深度学习实战(26)——编码卷积神经网络架构

遗传算法与深度学习实战(26)——编码卷积神经网络架构 0. 前言1. EvoCNN 原理1.1 工作原理1.2 基因编码 2. 编码卷积神经网络架构小结系列链接 0. 前言 我们已经学习了如何构建卷积神经网络 (Convolutional Neural Network, CNN),在本节中&a…

数学建模之熵权法

熵权法 概述 **熵权法(Entropy Weight Method,EWM)**是一种客观赋权的方法,原理:指标的变异程度越小,所包含的信息量也越小,其对应的权值应该越低(例如,如果对于所有样本而言,某项指标的值都相…

同道猎聘Q3营收降利润增,AI或成估值重塑关键词

2024年,经济向好的趋势没有改变,挑战却仍然存在。企业纷纷进行结构性变革优化或业务方向调整。这一点反映到人才市场,绝大多数企业对招聘扩张持保守态度,降本增效的主题仍在延续。 作为人才市场水温变化的“温度计”,…

46 基于单片机的烧水壶系统设计

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52RC单片机,采用四个按键,通过DS18B20检测温度,开机显示实时温度 第一个按键为切换功能按键,按下后,可以设置烧水温度的大小&…

推荐学习笔记:矩阵补充和矩阵分解

参考: 召回 fun-rec/docs/ch02/ch2.1/ch2.1.1/mf.md at master datawhalechina/fun-rec GitHub 业务 隐语义模型与矩阵分解 协同过滤算法的特点: 协同过滤算法的特点就是完全没有利用到物品本身或者是用户自身的属性, 仅仅利用了用户与…

【机器学习】—Transformers的扩展应用:从NLP到多领域突破

好久不见!喜欢就关注吧~ 云边有个稻草人-CSDN博客 目录 引言 一、Transformer架构解析 (一)、核心组件 (二)、架构图 二、领域扩展:从NLP到更多场景 1. 自然语言处理(NLP) 2…

【SpringMVC】用户登录器项目,加法计算器项目的实现

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:用户登录项目实现 1:需求 2:准备工作 (1&#xf…

数据结构(2)——顺序表的模拟实现

一:顺序表的认识 通过数据结构(1)对于算法复杂度的理解,现在我们正式进入数据结构的核心内容,今天,先来使用C语言实现一下数据结构中最简单的顺序表。 首先介绍一下顺序表的概念,先从线性表说…

docker更换容器存储位置

一:原因 今天之前在某个服务器上使用docker搭建的服务突然无法访问了,进入服务器查看发现服务运行正常,但是就是无法使用,然后我这边准备将docker服务重新启动下看看,发现docker服务无法重启,提示内存已满…

Day5:生信新手笔记 — R语言基本语法

一、数据类型 &#xff08;重点只有两个&#xff0c;剩下的不看&#xff09; 1.1 向量&#xff08;vector&#xff09; 矩阵&#xff08;Matrix&#xff09; 数组&#xff08;Array&#xff09; 1.2 数据框&#xff08;Data frame&#xff09; x<- c(1,2,3) #常用的向…