【Linux系统】第二篇、权限管理篇

news/2024/5/20 21:51:47/文章来源:https://blog.csdn.net/m0_58124165/article/details/127988263

文章目录

    • 一、Linux下的用户
    • 二、文件的权限
      • 1. 文件访问者的分类
      • 2. 文件类型和访问权限
      • 3. 文件权限值的表示方法
    • 三、文件访问权限的相关设置方法
      • 1. chmod
      • 2. chown
      • 3. chgrp
      • 4. umask(重点)
    • 四、file指令
    • 五、目录的权限
      • 粘滞位

一、Linux下的用户

这里我们在上一篇:基本指令篇,开头稍微讲解了一些,接下来我们具体的讲一讲:

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

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令: su [用户名] (su - [用户名])(后面的目录可以切换到用户的家目录下,路径发生改变,前者路径不发生改变)
功能: 切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
在这里插入图片描述

命令: sudo
功能: 不切换用户,就仅仅让普通用户,在一行内提权,以root的身份,执行对应的指令

sudo command,短暂提权 --> root执行命令

在这里插入图片描述
建议: 不推荐将root密码和普通用户密码设为一致的

二、文件的权限

权限 = 人 + 事物的属性

权限描述的就是人和事物属性的关系。接下来的文件访问者的就是人,文件属性就是事物属性。

1. 文件访问者的分类

文件访问者分为三类:

  • 拥有者(owner):即创建文件的用户
  • 所属组(group):拥有者所在的组,如果文件访问者只分拥有者和其他人的话,不便于多用户协作
  • 其他人(others):除了拥有者和所属组之外的都是其他人。

在这里插入图片描述
上图用框框出的第一列是文件的拥有者,第二列是所属组。由于用户较少所以自成一组
拥有者、所属组和其他,都是针对文件划分出的角色,而 root 和普通用户指的是具体的用户人

后面一列是文件的大小,再后面一列是文件的创建时间或最近修改时间。

2. 文件类型和访问权限

在上一篇中我们也稍微提到过,文件 = 内容 + 属性

而文件的属性数据我们知道的可就太多了,这里我们就讲解重要的两点,先看下图:

在这里插入图片描述
从上图可以清晰的看出,前面的一整块共有10列,共分成4组,第一列自成一组,之后每三列成一组,分别用不同的颜色框了起来。

而从我们学习指令到现在,我们可以发现,我们只要创建一个文件或目录,当我们查看文件的详细属性信息时,前面都有这么一大块,而这一大块代表什么呢?

1.文件类型:

通过ll显示的众多属性列中的第一列,在Linux中是用以区分文件类型的。一般有两种:- 代表普通文件,d代表目录。

注意: Linux中不以文件后缀作为区分文件的方式,只以属性的第一列进行区分。

  虽然Linux的文件类型与文件后缀无关,但并不意味着我们不可以使用后缀区分文件类型,而且我们Linux中的一些工具对文件后缀可能就有要求,比如在Linux中创建一个 .c 文件,我们可以在里面写代码,然后通过gcc工具编译运行,可以生成可执行程序,但如果是一个 .txt文件,就算我们在里面写了代码,我们gcc也编译不了它,更不可能生成可执行程序。

常见文件类型有以下几种:
在这里插入图片描述
前面标红的两个是我们必须要掌握的。

2.文件的权限属性:
上面讲了那么多,仅仅说的是属性的第一列,那还剩下的9列呢?

剩下九列,三三为一组,分别代表的是文件拥有者所属组其他人对文件的权限。

文件的权限分三种

  1. r :读权限,read对于文件而言,具有读取文件内容的权限;对于目录而言,具有浏览该目录信息的权限
  2. w:写权限,write对于文件而言,具有修改文件内容的权限;对于目录而言,具有创建或删除目录下文件的权限
  3. x:执行权限,execute对于文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限
  4. "”表示不具有该项权限

注意:拥有的权限对应位置是固定的,从左到右分别是,r,w,x。若对应位置没有该项权限,则用-表示。

3. 文件权限值的表示方法

  1. 字符表示法
      字符表示法就如上图所示。
Linux表示说明Linux表示说明
r--只读-wx可写可执行
-w-只写r-x可读可执行
--x仅可执行rwx可读可写可执行
rw-可读可写---无任何权限
  1. 8进制数字表示法
权限符号八进制二进制
r--4100
-w-2010
--x1001
rw-6110
r-x5101
-wx3011
rwx7111
---0000

总结:
我们上方所讲的文件的权限用下图总结表示出,这样更加清晰:
在这里插入图片描述

三、文件访问权限的相关设置方法

修改文件的权限分为两种,一是修改文件的读写执行属性,二是修改文件的拥有者和所属组。先看第一种:

1. chmod

chmod可以针对三种访问者修改文件的读写执行权限

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

chmod命令修改文件权限值的格式

① 用户表示符 +/-/= 权限字符

+:增加权限
-:取消权限
=:赋予权限 - - 相当于赋值,会覆盖其他权限

用户符号:
u:拥有者
g:所属组
o:其它用户
a:所有用户

具体如下:

# u表示拥有者user
[wyt@VM-20-4-centos lesson3]$ chmod u+x test.c  #给拥有者添加执行权限
[wyt@VM-20-4-centos lesson3]$ chmod u-w test.c  #给拥有者取消写权限
[wyt@VM-20-4-centos lesson3]$ chmod u=r test.c  #给拥有者赋予读权限
# g表示所属组group
[wyt@VM-20-4-centos lesson3]$ chmod g+w test.c  # 给所属组添加写权限
[wyt@VM-20-4-centos lesson3]$ chmod g-r test.c  # 给所属组取消读权限
[wyt@VM-20-4-centos lesson3]$ chmod g=x test.c  # 给所属组赋予执行权限
# o表示其他人other
[wyt@VM-20-4-centos lesson3]$ chmod o+w test.c  # 给其他用户添加写权限
[wyt@VM-20-4-centos lesson3]$ chmod o-r test.c  # 给其他用户取消读权限
[wyt@VM-20-4-centos lesson3]$ chmod o=x test.c  # 给其他用户赋予执行权限

执行效果如图(只列举其一):
在这里插入图片描述

chmod 支持连续修改多个访问者的权限,也支持连续修改单个访问者的多个权限,也支持连续修改多个访问者的多个权限,也支持连续操作多个文件。
在这里插入图片描述

②使用八进制方法修改权限
在这里插入图片描述

  说明:

[wyt@VM-20-4-centos lesson3]$ chmod 000 test.c  # 权限值为0也就是---
[wyt@VM-20-4-centos lesson3]$ chmod u-rwx,g-rwx,o-rwx test.c  #这两种写法是一致的[wyt@VM-20-4-centos lesson3]$ chmod 664 test.c  #权限值为664也就是rw-rw-r--
[wyt@VM-20-4-centos lesson3]$ chmod u+rw,g+rw,o+r test.c  #这两种写法是一致的

2. chown

chown 可用于修改文件的拥有者,也可以将文件拥有者和所属组一同修改

格式: chown 用户名 文件名

示例1: 修改文件拥有者
在这里插入图片描述
可以看出,文件是不能随便更改所有者给别的用户的,即使是文件所有者也不行

那如何进行修改呢?
我们在本文最初就讲过,root用户是超级管理员用户,它是不受权限的约束的,我们在上一篇也学过一条指令sudo命令,可以暂时提权,所以修改方式如下:

在这里插入图片描述
示例2: 一同修改文件拥有者和所属组
在这里插入图片描述

3. chgrp

chgrp 则是用于修改文件的所属组
格式: chgrp 用户组名 文件名

示例:
在这里插入图片描述

4. umask(重点)

为什么我们创建的目录或者普通文件,默认权限就是 我们所看到的样子呢?比如:
在这里插入图片描述

其实在Linux中规定

  • 目录的起始权限是:777
  • 普通文件的起始权限是:666

但我们所看到的权限也不是777和666呀,这是为什么呢?

其实在系统中还有一个umask:叫做权限掩码
在这里插入图片描述
我们只需要关注后面三个数字即可,第一个数字不需要关心。

系统默认会配置好umask 权限掩码:

  • 超级用户默认掩码值为0022
  • 普通用户默认为0002

说这么多,那权限掩码和我们创建的文件权限有什么关系呢,有什么功能呢?

权限掩码:凡是在umask中出现的权限,都必须在起始权限中去掉

就拿我们上面创建的目录和文件举例:
在这里插入图片描述

我们除了可以查看umask权限掩码的值,还可以进行修改:

# umask //查看
# umask 044//设置

示例1:
在这里插入图片描述
示例2:
在这里插入图片描述

讲了这么多,上述也列举了例子,那这到底是如何计算的呢?是用减法吗?----不是!

计算方法如下:
在这里插入图片描述
示例: 拿普通文件举例
在这里插入图片描述
与实际结果也一致:
在这里插入图片描述

四、file指令

功能说明:辨识文件类型
语法:file [选项] 文件或目录.
常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

在这里插入图片描述

五、目录的权限

经过上面的讲解,普通文件的读写执行分别代表着什么含义,这对于我们来说是很明确的。但目录的读写执行分别又代表什么意义呢?与普通文件有什么不同呢?

目录下的三种权限

  • 可执行权限(x): 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  • 可写权限(w): 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

示例1: 去掉目录的可执行权限,观察是否可以进入目录
在这里插入图片描述

示例2: 去掉目录的可读权限,看是否可以ls该目录查看它下面的文件

在这里插入图片描述

示例3: 去掉目录的可写权限,看是否可以在该目录下创建或删除文件
在这里插入图片描述

粘滞位

Linux系统中有很多人,当我们需要在一个公共的目录下,进行临时文件的操作(增删查改)

根据目录的权限规定,只要用户对目录具有写权限,那么目录内的他人所创建的文件,用户不经他人同意也可以删除。
所以让一个公共目录,大家可以各自进行rwx操作,但是,禁止大家互删对方文件!我们可以给目录设置粘滞位(权限的一种特殊情况)

当一个目录被设置粘滞位时,该目录只能被三种用户删除:

  • 超级用户root
  • 用户所有者
  • 用户所属组

Linux系统根目录下默认有一个公共目录:tmp
在这里插入图片描述

注意:设置粘滞位,需要用root用户来设置,普通用户不能设置。
在这里插入图片描述
注意,粘滞位是对目录进行修改的,对目录下的所有文件生效

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

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

相关文章

【雷达通信】雷达探测项目仿真附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

多线程(1)

多线程 前言 : 上文主要了解到了进程, 那么为啥需要引入进程呢?   或者说为啥要有进程呢? 其实这里最主要的目的是为了解决 并发编程 这样的问题。 了解 :   这里 cpu 进入了多核心的时代,想要进一步提…

3天3定制大屏,反向PUA

摘要 本次分享一段无讨价还价余地的单人3天定制化大屏全过程(强调说拖拽屏的请绕道,和你想的不一样),要动效、要地图、要流光。天坑的心理博弈到最终解决的过程及技术思路。 前因 没啥征兆突然接到说,要在下周完成2个大屏的定制开发,起初没提…

身份安全风险分析

摘要 从勒索软件到 APT,身份风险是重要的攻击向量。 管理 Active Directory 的复杂性,导致所有组织都存在1/6的可利用的特权身份风险。 这些身份风险包括使用过时密码的本地管理员、具有不必要权限的错误配置用户、在终端上暴露的缓存凭据等。 当攻击者…

arthas进阶版排查问题之idea插件工具操作

arthas前面的文章讲了怎么去使用命令排查线上问题,线上出了问题就需要我们去排查问题和处理程序异常,但是线上一般出问题不太好解决,总有一些奇怪的问题,当然很多场景是测试测试不到的,我们不能百分百保证线上不出问题…

阿里大咖纯手写的微服务入门笔记,从基础到进阶直接封神

前言 学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。 学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的…

AcWing 搜素与图论

搜索 DFS 全排列 代码 #include<iostream> using namespace std;int vis[10], a[10];void dfs(int step, int n) {if (step n 1){for (int i 1; i < n; i)printf("%d ", a[i]);printf("\n");return;}for (int i 1; i < n; i){if (!vis[i…

【调优】大数据常见 Join 的使用场景

【调优】大数据常见 Join 的使用场景 上次写了大表和大表 join 的调优方法&#xff0c;今天总结一下大数据常见的 Join 方法。 1.Shuffle Join 大数据采用的是分布式存储&#xff0c;一个表的数据会分散在各个节点。为了进行 join&#xff0c;通常都会进行 shuffle 操作&…

ESG,TO B长期主义里的「新战役」

中国企业最好的方式是从初始阶段就植入ESG基因&#xff0c;使它逐渐从隐形变成显性基因。长期坚持此类发展导向&#xff0c;对后续发展ESG战略&#xff0c;提升ESG合规能力也将成为一种积累和准备。 作者|三七 编辑|皮爷 出品|产业家 20世纪初期&#xff0c;伦敦得到一个延…

HttpMessageConverter 消息转换器

HttpMessageConverter 简介 HttpMessageConverter 是SpringMVC中提供的一个策略接口&#xff0c;它是一个消息转换器类&#xff0c;Spring Mvc中就是由HttpMessageConverter负责转换HTTP的请求和响应。 默认情况下&#xff0c;Spring Boot 会自动加载如下消息类型转换器&…

数字验证学习笔记——UVM学习1

一、类库地图 在SV模块中&#xff0c;验证环境整体的构建&#xff0c;是从底层模块的验证组件搭建到通信和激励生成这些元素无论是软件对象的创建、访问、修改、配置&#xff0c;还是组件之间的通信等都是通过用户自定义的方式来实现的。UVM验证方法学作为之前所有方法学的融合…

【语音去噪】谱减法+维纳滤波+卡尔曼滤波语音去噪【含Matlab源码 1881期】

⛄一、谱减法维纳滤波卡尔曼滤波语音去噪简介 1 维纳滤波算法 在传统的去噪算法中,维纳滤波因其操作简单、去噪效果好,被公认为一种经典的去噪算法。语音信号在时域的表示为: yi( t) si( t) ni( t) ,其中si( t) 、ni( t) 和yi( t) 分别是第i帧原始语音信号、噪声和被噪声污染…

java检验mp4文件完整性的一个方法:使用ffmpeg

问题引入 最近笔者在写一个多线程下载视频文件的程序&#xff0c;打算让这个程序在我的空闲服务器上运行&#xff0c;但是几轮测试之后发现&#xff0c;有时候会存在下载的视频文件不完整的情况&#xff0c;这就导致了有些文件无法正常播放 问题排查 经过一周的排查后&#…

面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了

由于现在大多计算机都是多核CPU&#xff0c;多线程往往会比单线程更快&#xff0c;更能够提高并发&#xff0c;但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁&#xff0c;你的程序反而不能支持更高的TPS。 时间片 多任务…

Java23种设计模式之第三弹-工厂模式

说起工厂&#xff0c;我们第一反应是制作什么东西的吧~。在现实生活中&#xff0c;工厂 &#xff0c; 就是用于生成一些特定事物的厂商。 回到我们此处说的工厂模式上&#xff0c;什么是工厂模式呢 &#xff0c; 顾名思义&#xff0c;就是生成我们的对象的类就会称成为工厂。 …

关于BigInteger和BigDecimal

BigInteger BigInteger类是用于解决整形类型(含基本数据类型及对应的包装类,)无法表示特别大的数字及运算的问题,即使是占用字节数最多的整形long,能表示的范围也是有限的.理论上,你可以使用BigInteger表示任意整数基于java8中BigInteger的构造方法. BigDecimal的构造方法2 …

[附源码]计算机毕业设计JAVA汽车租赁系统

[附源码]计算机毕业设计JAVA汽车租赁系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis M…

傻白入门芯片设计,芯片键合(Die Bonding)(四)

一、键合( Bonding) 作为半导体制造的后工序&#xff0c;封装工艺包含背面研磨(Back Grinding)、划片(Dicing)、芯片键合(Die Bonding)、引线键合(Wire Bonding)及成型(Molding)等步骤。这些工艺的顺序可根据封装技术的变化进行调整、相互结合或合并。芯片键合(die bonding)工…

Linux之分区【详细总结】

目录分区介绍分区查看指令lsblk ![请添加图片描述](https://img-blog.csdnimg.cn/d7ea5468d719433ea6ee4ab0eb145770.png)lsblk -f挂载案例分五部分组成 虚拟机添加硬盘 分区 格式化 挂载 设置自动挂载虚拟机增加硬盘查看整个系统磁盘情况查询查看整个目录磁盘占用情况磁盘情况…

cpu设计和实现(协处理器hi和lo)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多同学可能不了解mips处理器&#xff0c;如果个人想补充一点mips cpu的知识&#xff0c;可以找些书籍资料来读一下&#xff0c;比如《See Mips R…