【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方面的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

前言 相信大家在刷算法题的过程中,好不容易想出来大概的思路,也知道去用哪个集合类,但各个集合类的一些命令都长得太像,很容易将他们弄错,并且在各集合之间的转化也是特别烦人,还有很多实用的函数都知道可…

cgo内存泄漏排查

示例程序&#xff1a; package main/* #include <stdlib.h> #include <string.h> #include <stdio.h> char* cMalloc() {char *mem (char*)malloc(1024 * 1024 * 16);return mem; } void cMemset(char* mem) {memset(mem, -, 1024 * 1024 * 16); } int arr…

【算法】【优选算法】位运算(下)

目录 一、&#xff1a;⾯试题 01.01.判定字符是否唯⼀1.1 位图1.2 hash思路1.3 暴力枚举 二、268.丢失的数字2.1 位运算&#xff0c;异或2.2 数学求和 三、371.两整数之和四、137.只出现⼀次的数字 II五、⾯试题 17.19.消失的两个数字 一、&#xff1a;⾯试题 01.01.判定字符是…

Tomcat 都有哪些核心组件

优质博文&#xff1a;IT-BLOG-CN 【1】Server&#xff1a;Server元素在最顶层&#xff0c;代表整个 Tomcat容器&#xff0c;因此他必须是 server.xml中唯一一个最外层的元素。一个 Server元素可以有一个或多个 Service元素。 <Server port"8005" shutdown"…

前端开发 之 15个页面加载特效中【附完整源码】

前端开发 之 15个页面加载特效中【附完整源码】 文章目录 前端开发 之 15个页面加载特效中【附完整源码】八&#xff1a;圆环百分比加载特效1.效果展示2.HTML完整代码 九&#xff1a;毒药罐加载特效1.效果展示2.HTML完整代码 十&#xff1a;无限圆环加载特效1.效果展示2.HTML完…

单张照片生成3D互动场景:李飞飞团队AI 3D技术引领未来

近日,由斯坦福大学教授李飞飞领导的团队推出了一项革命性的AI 3D重建技术,该技术能够从多张未知姿态的照片中自动生成高质量的3D互动场景。这项技术不仅标志着计算机视觉领域的一大进步,也为元宇宙虚拟空间、沉浸式看房、XR(扩展现实)+文旅等应用带来了新的可能性。 技术…

洛谷P2670扫雷游戏(Java)

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

【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)

CART&#xff08;Classification and Regression Tree&#xff09; CART&#xff08;分类与回归树&#xff09;是一种用于分类和回归任务的决策树算法&#xff0c;提出者为 Breiman 等人。它的核心思想是通过二分法递归地将数据集划分为子集&#xff0c;从而构建一棵树。CART …

商汤完成组织架构调整,改革完成的商汤未来何在?

首先&#xff0c;从核心业务的角度来看&#xff0c;商汤科技通过新架构明确了以AI云、通用视觉模型等为核心业务的战略方向。这一举措有助于商汤科技集中资源&#xff0c;加强在核心业务领域的研发和市场拓展&#xff0c;提高市场竞争力。同时&#xff0c;坚定生成式AI为代表的…

python学opencv|读取视频(二)制作gif

【1】引言 前述已经完成了图像和视频的读取学习&#xff0c;本次课学习制作gif格式动图。 【2】教程 实际上想制作gif格式动图是一个顺理成章的操作&#xff0c;完成了图像和视频的处理&#xff0c;那就自然而然会对gif的处理也产生兴趣。 不过在opencv官网、matplotlib官网…

【Pytorch】torch.reshape与torch.Tensor.reshape区别

问题引入&#xff1a; 在Pytorch文档中&#xff0c;有torch.reshape与torch.Tensor.reshape两个reshape操作&#xff0c;他们的区别是什么呢&#xff1f; 我们先来看一下官方文档的定义&#xff1a; torch.reshape&#xff1a; torch.Tensor.reshape: 解释&#xff1a; 在p…

ArcGIS对地区进行筛选提取及投影转换

首先我们需要对坐标系和投影这些概念做进一步的解释。 1、基本概念&#xff1a; 想要理解坐标系和投影的概念&#xff0c;首先我们需要先理解什么是坐标。顾名思义&#xff0c;坐标就是指我们所在的位置&#xff0c;比如我在离旗杆东北部50m处&#xff0c;其实就是离旗杆东边…

qt QRadialGradient详解

1、概述 QRadialGradient是Qt框架中QGradient的一个子类&#xff0c;它用于创建径向渐变效果。径向渐变是从一个中心点向外扩散的颜色渐变&#xff0c;通常用于模拟光源或创建类似于高光和阴影的效果。QRadialGradient允许你定义渐变的中心点、焦距&#xff08;控制渐变扩散的…

Docker--Docker Image(镜像)

什么是Docker Image&#xff1f; Docker镜像&#xff08;Docker Image&#xff09;是Docker容器技术的核心组件之一&#xff0c;它包含了运行应用程序所需的所有依赖、库、代码、运行时环境以及配置文件等。 简单来说&#xff0c;Docker镜像是一个轻量级、可执行的软件包&…

《C++ Primer Plus》学习笔记|第1章 预备知识 (24-12-2更新)

文章目录 1.2.4 1.4 程序创建1.4.2 编译和链接 1.2.4 泛型编程 它允许程序员在编写代码时不指定具体的数据类型&#xff0c;而是使用一种通用的模板来处理多种不同的数据类型。以提高代码的复用性 C模板提供了完成这种任务的机制。 1.4 程序创建 使用文本编辑器编写程序&…

string类函数的手动实现

在上一篇文章中&#xff0c;我们讲解了一些string类的函数&#xff0c;但是对于我们要熟练掌握c是远远不够的&#xff0c;今天&#xff0c;我将手动实现一下这些函数~ 注意&#xff1a;本篇文章中会大量应用复用&#xff0c;这是一种很巧妙的方法 和以往一样&#xff0c;还是…

架构06-分布式共识

零、文章目录 架构06-分布式共识 1、分布式共识 &#xff08;1&#xff09;基本概念 **分布式共识&#xff1a;**在分布式系统中&#xff0c;多个节点之间达成一致的过程。**复杂性来源&#xff1a;**网络的不可靠性和请求的并发性。**应用场景&#xff1a;**如何确保重要数…

USB 声卡全解析:提升音频体验的得力助手

在当今数字化的时代&#xff0c;音频领域的追求愈发多元。无论是热衷聆听高品质音乐的爱好者&#xff0c;还是在专业音频工作中精雕细琢的人士&#xff0c;亦或是在游戏世界里渴望极致音效沉浸的玩家&#xff0c;都始终在寻觅能让音频体验更上一层楼的妙法。而 USB 声卡&#x…

系统--线程互斥

1、相关背景知识 临界资源多线程、多执行流共享的资源,就叫做临界资源临界区每个线程内部,访问临界资源的代码互斥在任何时刻,保证有且只有一个执行流进入临界区,访问临界资源,对临界资源起到保护作用原子性不会被任何调度机制打断的操作,该操作只有两态,要么完成,要么…

【短视频矩阵系统==saas技术开发】

在数字媒体领域&#xff0c;短视频的崛起已不可忽视。对于商业实体而言&#xff0c;掌握如何通过短视频平台有效吸引潜在客户并提高转化率&#xff0c;已成为一项关键课题。本文旨在深入剖析短视频矩阵系统的构成与作用机制&#xff0c;以期为企业提供一套系统化的策略&#xf…