【Linux】权限问题

news2025/1/17 5:55:11

Linux权限

  • 一、Linux 权限的概念
  • 二、Linux 权限管理
    • 1. 文件访问者的分类
    • 2. 文件类型和访问权限(事物属性)
    • 3. 文件访问权限的相关设置方法
  • 三、默认权限
    • 1. 对文件和目录进行操作需要的权限
    • 2. 文件和目录的默认权限
    • 3. 粘滞位

一、Linux 权限的概念

Linux 下有两种用户:超级用户(root)、普通用户。
超级用户:可以在 Linux 系统下做任何事情,不受限制;
普通用户:在 Linux 下做有限的事情。
超级用户的命令提示符是 “#” ,普通用户的命令提示符是 “$”

命令:su [用户名]
功能:切换用户。
例如,要从 root 用户切换到普通用户 user,则使用 su user。 要从普通用户 user 切换到 root 用户则使用 su root(root可以省略),此时系统会提示输入 root 用户的密码,如下图:

在这里插入图片描述

二、Linux 权限管理

我们在使用 ll 指令的时候,通常会看到文件或目录名前面有一串的数据,那么它们是表示什么意思呢?例如下图红色框中:

在这里插入图片描述

首先我们知道,下面三列就是时间,准确来说是上一次修改文件或目录的时间:

在这里插入图片描述

然后就是下面这一列的数字,就是表示文件或目录的大小:

在这里插入图片描述
再下来我们了解两列 lmy 表示什么。

1. 文件访问者的分类

首先我们先要了解,文件访问者的分类分为三类:

  1. 文件和文件目录的所有者:u—User
  2. 文件和文件目录的所有者所在的组的用户:g—Group
  3. 其它用户:o—Others

而在我们下图中的两列 lmy中,第一列 lmy 表示的是 user,第二列表示 group,如下图:

在这里插入图片描述

而除了 usergroup 之外,就是属于 other 组了,属于 other 组的用户没有权限访问这个文件或者目录。

2. 文件类型和访问权限(事物属性)

而最前面的那段字符,如下图:

在这里插入图片描述

这段字符表示什么意思呢,这段字符的含义如下:

在这里插入图片描述

而文件类型中的表示含义如下:

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

访问者权限的基本表示如下:

  • 读(r):Read ,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w):Write ,对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x):execute,对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • - 表示不具有该项权限

例如下图的 Test 目录中:

在这里插入图片描述

第1位的 d 就是表示这个文件类型为目录;2-4位为 user 所拥有的权限,分别为读写执行;5-7位为 group 所拥有的权限,也是读写执行;最后三位为 other 的权限,只有读和执行的权限,没有写的权限。

3. 文件访问权限的相关设置方法

命令:chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

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

修改权限字符:
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

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

例如我们 touch 一个文件,它的默认权限如下图:

在这里插入图片描述

我们给 user 加上 x 权限:

在这里插入图片描述

此时 test.c 的 user 用户就有了 x 权限;我们再给 other 用户加上 rwx 权限,如下图:

在这里插入图片描述

最后我们再将 group 组的权限全部去掉,如下图:

在这里插入图片描述

修改权限的操作就如上所示,其实我们还有另外一种修改权限的方式,就是使用二进制的方式;

例如 rwx 是三位字母,我们可以使用 01 表示其权限的有无;所以这三位我们可以看作整体,组成一个八进制的数字,来判断其用户权限的有无,例如 r-x,可以用二进制 101 表示,其八进制为 5–x 可以用二进制 001 表示,其八进制为 1rwx 可以用二进制 111 表示,其八进制为 7

所以,在修改权限时,我们也可以使用三位8进制数字的方式修改,例如我们要将 other 的权限全部去掉,而 usergroup 的权限全部加上,如下图:

在这里插入图片描述

再例如我们将所有组的权限都去掉,如图:

在这里插入图片描述

以上就是修改权限的相关内容。

三、默认权限

1. 对文件和目录进行操作需要的权限

在学习默认权限之前,我们需要了解我们对文件或目录进行操作需要的权限。

首先我们先了解一下进入一个目录需要什么样的权限呢?我们逐一尝试,首先我们先保留 读(r ) 权限:

在这里插入图片描述

读( r) 权限不能进入一个目录,然后我们分别只保留 写(w)执行(x) 权限 :

在这里插入图片描述

在这里插入图片描述

我们可以观察到,进入一个目录是只需要 执行(x) 权限的。

然后我们将 dir 的权限放开,在里面新建一些文件,如下:

在这里插入图片描述

然后我们对 dir 读(r )、写(w) 去掉,我们进入这个目录,然后发现查看和新建文件都不可以了,如图:

在这里插入图片描述

原因很简单,因为 dir 这个目录只有 执行(x) 权限,而 ll 指令查看文件属性是需要 读( r) 权限;而新建文件则需要 写(w) 权限,大家可以自己去实现验证一下。

所以总结一下:

  1. 是否允许一个指定用户查看目录的文件列表,需要 读( r) 权限。
  2. 是否允许一个指定用户在当前目录下新建文件或删除文件,需要 写(w) 权限。
  3. 进入一个目录需要 执行(x) 权限。
  4. 一个文件一定是属于一个目录的,一个文件能不能被查看,是由目录的权限决定的。
  5. 一个文件一定是属于一个目录的,一个文件能不能被删除,不是由这个文件本身决定的,是由所属目录与对应账户是否拥有 写(w) 权限决定的!

2. 文件和目录的默认权限

我们要知道,新建文件默认权限为 666 ;新建目录默认权限为 777;但是实际上,我们新建一个文件和目录观察,它们的默认权限并不是我们所说的,如下图:

在这里插入图片描述

如图我们可以观察到,新建的 test 目录默认权限为 776;新建的 test.c 文件默认权限为 664;原因就是创建文件或目录的时候还要受到 umask 权限掩码的影响。umask 功能:查看或修改文件掩码。

我们在命令行输入 umask 即可查看权限掩码,如下图:

在这里插入图片描述

修改权限掩码在 umask 后跟上权限掩码即可:

在这里插入图片描述

那么为什么会存在权限掩码呢?权限掩码是什么呢?它有什么用途呢?下面我们来分析一下。

假设我们不受权限掩码的限制,我们将权限掩码改成 000 ,然后创建一个目录,如图:

在这里插入图片描述

然后我们进入这个目录创建一个文件:

在这里插入图片描述

现在这个文件的默认权限 666,因为我们的权限掩码改成了 000;现在这个文件中,other 组是有 写(w) 的权限,所以就意味着所有人都可以对这个文件进行修改,这就使这个文件变得不安全;所以我们应该把这个文件中 other 组的 写(w) 权限去掉,如下图:

在这里插入图片描述

现在这个文件就变得安全了吗?不是!虽然在这个文件中,other 组没有了 写(w) 的权限,但我们前面讲过,一个文件能不能被删除,不是由这个文件本身决定的,是由所属目录与对应账户是否拥有 写(w) 权限决定的!我们要知道,这个目录对 other 组是放开所有权限的,因为权限掩码是 000,所以就意味着所有人都可以进入这个目录然后删除这个文件,意思就是你不让我看,我就毁掉!这意味着这整个目录都是不安全的!

所以我们回过头来看,为什么要有权限掩码,我们到现在应该可以猜到了,是为了保护目录和文件的安全,具体一点,就是不让 other 组对我们的目录和文件构成威胁。

那么权限掩码是怎么做到的呢?原因是,凡是在权限掩码中出现的权限,最终都要在起始权限中去掉。 例如下图:

在这里插入图片描述

所以权限掩码去掉了 other 组的 写(w) 权限,就有效地保护了目录以及目录内的文件安全。上图中的具体实现就是:最终权限 = 起始权限 & (~umask).

所以这就讲通了新建一个目录的实际默认权限为什么是 775;新建一个文件的实际默认权限为什么是 664 了。

3. 粘滞位

一般而言,我们上面所说的情况都不太会出现,因为不同的账号,是不会在同一个目录下的;但是如果有特殊情况,我们多个账号想互相协同,共享一些数据,但又不希望别人修改我们的数据呢?

这时候就需要我们用到粘滞位了,粘滞位的使用是 chmod +t 目录名 ,粘滞位是只能给目录设置的,使用如下:

在这里插入图片描述

当一个目录被设置为粘滞位,则该目录下的文件只能由

  1. 超级管理员(root)删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

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

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

相关文章

Linux下的Shell基础——正则表达式入门(四)

前言: 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 在Linux 中,grep,sed,awk 等文本处理工具都支持…

馈纸式扫描仪:解放双手,告别繁琐

来百度APP畅享高清图片 扫描仪是OCR中获取高质量图片的重要设备,前面我们介绍了平板扫描仪,也略有提到馈纸式扫描仪,那么,什么样的扫描仪才是馈纸式的扫描仪?它长什么样呢? 馈纸式扫描仪(Automa…

Mybatis查询数据

上一篇我们介绍了在pom文件中引入mybatis依赖,配置了mybatis配置文件,通过读取配置文件创建了会话工厂,使用会话工厂创建会话获取连接对象读取到了数据库的基本信息。 如果您需要对上面的内容进行了解,可以参考Mybatis引入与使用…

前端进阶之———浏览器调试巧技

有幸的参加了一次腾讯的面试,被面试官问到了JS能不能在浏览器上import依赖已经遇到一个错误函数应该怎么解决。之前的经验是做一些简单的html,css样式调试以及他的报错信息,忽略了浏览器js调试的强大功能。觉得还是非常有必要的,很…

通俗理解拉格朗日乘数法

再理解拉格朗日乘数法 笔记来源:Understanding Lagrange Multipliers Visually 本人相关博客: 1.方向导数和梯度向量 2.最小二乘和回归线、拉格朗日乘数、二元泰勒多项式、带约束变量的偏导数 函数: z f ( x , y ) zf(x,y) zf(x,y)&#x…

gitlab合并分支

我的分支为 cheng 第一步: 增加新的代码 第二步:提交并推送 第三步:打开gitlab,找到对应项目 这样就成功把cheng分支合并到dev-test分支了

短视频矩阵系统接口部署技术搭建

前言 短视频矩阵系统开发涉及到多个领域的技术,包括视频编解码技术、大数据处理技术、音视频传输技术、电子商务及支付技术等。因此,短视频矩阵系统开发人员需要具备扎实的计算机基础知识、出色的编程能力、熟练掌握多种开发工具和框架,并掌握…

擎创快讯|合作开启!云原生数智化2.0时代来临

近日,上海擎创信息技术有限公司(简称“擎创科技”)与北京华胜天成科技股份有限公司(简称“华胜天成”)达成战略合作伙伴关系。 擎创科技副总裁冯陈湧与华胜天成副总裁崔勇、助理总裁郭涛一致认为在金融、保险、证券、…

视频智能分析平台EasyCVR视频汇聚平台关于AI分析告警列表的定制详细介绍

安防监控视频集中存储/云存储EasyCVR视频汇聚平台基于云边端一体化架构,可支持多协议、多类型设备接入,视频监控综合管理平台具有强大的数据接入、处理及分发能力,能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、…

Visual Studio 2022的MFC框架——theApp全局对象

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 MFC中的WinMain函数是如何与MFC程序中的各个类组织在一起的呢?MFC程序中的类是如何与WinMain函数关联起来的呢&#xff1f…

十大气传导耳机品牌排行榜,值得入手的气传导耳机推荐

​气传导耳机在运动、通勤或休闲时享受音乐,是个非常不错的选择。无束缚的佩戴舒适感和出色的音质体验受到更多人追捧。面对市面上如此多的气传导耳机,本文将为你推荐四款综合性能表现不错的气传导耳机,让你找到最适合自己的音乐伴侣&#xf…

微信小程序|步骤条

步骤条是现代用户界面设计中常见的元素之一,它能够引导用户按照预定顺序完成一系列任务或步骤。在小程序中,实现步骤条可以为用户提供更好的导航和引导,使用户体验更加流畅和直观。本文将介绍如何在小程序中实现步骤条,并逐步展示实现的过程和关键技巧 目录 步骤条的作用及…

腾讯云和阿里云服务器折扣对比_看看哪家划算?

阿里云服务器和腾讯云服务器根据购买时长可以享受一定的优惠折扣,综合对比下来腾讯云折扣更低,阿腾云来对比下阿里云和腾讯云的云服务器根据购买时长可以享受的常规折扣对比: 目录 阿里云和腾讯云折扣对比 阿里云服务器常规折扣 腾讯云服…

阿里云通义千问开源第二波!大规模视觉语言模型Qwen-VL上线魔搭社区

通义千问开源第二波!8月25日消息,阿里云推出大规模视觉语言模型Qwen-VL,一步到位、直接开源。Qwen-VL以通义千问70亿参数模型Qwen-7B为基座语言模型研发,支持图文输入,具备多模态信息理解能力。在主流的多模态任务评测…

PHPStudy 安装tp8 php8.2.9 安装XDbug、redis扩展

一、PhpStudy升级PHP版本,安装PHP8.2操作步骤 1.1、官网下载最新的php版本 打开Windows版的官网下载,地址:https://windows.php.net/download/ 页面上有不同的PHP版本,这里我们下载的是64位nts版的PHP8.2.9。 1.2、解压下载的文…

java+springboot+mysql大学生综合素质测评

项目介绍: 使用javaspringbootmysql开发的高校学生综合素质测评管理系统,系统包含超级管理员、管理员、学生、辅导员角色,功能如下: 超级管理员:管理员管理;学院管理;班级管理;课程…

真的!不用代码就能实现复杂的场景可视化大屏交互功能!

在很多可视化项目中,如果想要实现场景可视化大屏交互的功能,程序员们总是需要敲很多代码,才能最终产出有效的交互效果,在这之中,如果出现个bug,那在一大串代码中寻找这个bug 的出处,又必然是一件…

YoloV5环境搭建记录

https://github.com/ultralytics/yolov5/ 1、在Anaconda Promptx新建conda虚拟环境 conda create -n py39_yolov5 python3.9 2、激活虚拟环境 conda activate py39_yolov5 3、虚拟环境下装所需依赖 conda install pytorch1.12.1 torchvision0.13.1 torchaudio0.12.1 cpuo…

怎么实现技术评卷时间0投入的?(下)

01 痛苦的编程题评卷 试想如下一个场景: “技术面试官Arron 的企业要招聘Java 后端工程师,考核 SpringBoot 框架和 MyBatis 这两个后端开发的必备技能。而他要负责评审多份候选人的编程题试卷,题目是要求使用SpringBoot 和MyBatis实现一个购…

python VTK PyQt5 VTK环境搭建 创建 渲染窗口及三维模型,包含 三维模型交互;

目录 Part1. VTK 介绍 Part2. PyQt5 VTK环境搭建 安装Anaconda 自带Python Anaconda下载 安装PyQt5 安装 VTK Part3 :PyQt VTK 结合样例: Part1. VTK 介绍 VTK(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形…