【Linux】权限的深度解析

前言:在此之前我们学习了一些常用的Linux指令,今天我们进一步学习Linux下权限的一些概念

💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:Linux的学习 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
在这里插入图片描述


目录

  • Linux权限的概念
  • Linux权限管理
    • 文件访问者的分类(人)
    • 文件类型和访问权限(事物属性)
      • 文件类型
      • 基本权限
    • 文件访问权限的相关设置方法
      • 修改文件的拥有者
      • 更改文件的所属组
    • 查看或修改文件权限掩码
    • linux下目录的权限
    • 粘滞位


Linux权限的概念

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

在上一篇文章中我们详细的讲解了如何从普通用户切换成超级用户如果有不懂的可以去看一下上一篇文章Linux下基本指令


Linux权限管理

文件访问者的分类(人)

对于任意一个文件在被创建出来的时候就会将未来的访问者分为三类:拥有者、所属组、其它用户(other)

  1. 文件和文件目录的所有者(拥有者):我们可以直接理解成创建这个文件的人,也可以说成这个文件是他的
  2. 其它用户(other):我们可以理解成外界访问者,例如外国人来中国那么这个外国人就是other
  3. 文件和文件目录的所有者所在的组的用户(所属组):我们可以通俗的理解成你是一个组的组长,这个文件的组长给你们这个组开发了权限,只有你们这个组可以看到。(如下图)
  4. 当然了对于超级用户(root)他可以随意访问这些文件
    在这里插入图片描述

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

Linux系统不是以文件名后缀区分文件类型的,而是通过ll指令显示的第一个字符区分文件类型的!
在这里插入图片描述


文件类型

符号文件类型
-表示普通文件
d表示目录
l表示符号链接
b表示块设备文件
c表示字符设备文件
s表示套接字
p表示管道

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

基本权限

Linux系统中,文件的权限属性分为三类:r(读-4)、w(写-2)、x(可执行-1)

  1. 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

字符表示:

权限符号说明
r – –只读
– w –仅可写
– – x仅可执行
rw –可读可写
– wx可写可执行
r – x可读可执行
rwx可读可写可执行
– – –无任何权限

8进制数值表示:

权限符号八进制二进制
r – –4100
– w –2010
– – x1001
rw –6110
– wx3011
r – x5101
rwx7111
– – –0000

实例演示在这里插入图片描述


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

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

符号模式说明
u代表所有者权限
g代表组的权限
o代表其他用户权限
a代表所有权限
+增加权限
-移除权限
=设置权限

示例一:

对文件的其它人增加执行和写的权限
在这里插入图片描述
示例二
去掉文件的所属组的写的权限
在这里插入图片描述

示例3
使用三位八进制数字

在这里插入图片描述
示例4
对整体指令进行修改
在这里插入图片描述
这里再次强调,无论开放与不开放权限,root都可以为所欲为


修改文件的拥有者

chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
-R:递归地更改目录及其所有子目录中的文件的所有者和所属组。
-h:如果目标文件是符号链接,则会改变链接本身的所有者和所属组,而不是链接所指向的文件的所有者和所属组。
注意:要执行chown命令,您需要对目标文件或目录具有合适的权限。只有文件或目录的所有者或超级用户(root用户)才能更改其所有者和所属组。


[wei@Centos ~]$ chown user1:group1 file.txt
#将文件file.txt的所有者更改为user1,所属组更改为group1。
[wei@Centos ~]$chown -R user1:group1 directory/
#递归地更改目录及其所有子目录中的文件的所有者和所属组
#将目录directory及其所有子目录中的文件的所有者更改为user1,所属组更改为group1

更改文件的所属组

chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
注意:要执行chgrp命令,您需要对目标文件或目录具有合适的权限。只有文件或目录的所有者或超级用户(root用户)才能更改其所属组。

[wei@Centos ~]$ chgrp group1 file.txt
#chgrp group1 file.txt
[wei@Centos ~]$chgrp -R group1 directory/

查看或修改文件权限掩码

umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

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

格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
最终权限 = 默认权限 & (~umask)
实例演示unmask的修改:

[wei@Centos ~]$ umask 755
[wei@Centos ~]$ umask
0755
[wei@Centos ~]$ umask 044
[wei@Centos ~]$ umask
0044

linux下目录的权限

刚刚我们了解了普通文件的rwx可读可写可执行,现在来看看目录的rwx的含义:

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

粘滞位

在Linux中,粘滞位(Sticky Bit)是一种特殊的文件权限设置,它可以应用在目录上。当一个目录被设置了粘滞位后,只有目录的所有者和超级用户可以删除或重命名目录中的文件,其他用户只能删除或重命名自己所拥有的文件。
粘滞位主要用于公共目录,例如/tmp,以确保其他用户无法删除或篡改其他用户的文件。下面是在Linux中使用粘滞位的方法:

[wei@Centos ~]$ chmod +t 目录名称[wei@Centos ~]$chmod +t /tmp

需要注意的是,粘滞位只能应用于目录,而不能应用于文件。另外,设置粘滞位的操作需要超级用户权限。


结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。


🫵🫵🫵 这里也祝各位寒假快乐哦 💞

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

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

相关文章

python实现图片式PDF转可搜索word文档[OCR](已打包exe文件)

目录 1、介绍 1.1、痛点 1.2、程序介绍 2、安装方式 2.1、🔺必要环节 2.2、脚本安装 2.2.1、不太推荐的方式 2.2.2、节约内存的方式 2.3、⭐完整版安装 3、使用 3.1、最终文件目录 3.2、主程序 3.2.1、绝对路径 3.2.2、是否为书籍 3.2.3、⭐截取区域 …

lvgl移植流程

移植准备 基于梁山派屏幕扩展板mcu屏幕源码Screen_MCU移植下载lvgl 8.3版本源码下载地址:https://github.com/lvgl/lvgl参考文档:Set-up a project — LVGL documentation 移植步骤 1. 删除源码 删除源码中不需要的文件夹,仅保留如下内容 demos : lvgl综合案例e…

QtCreator12无法识别Qt5.15.2的安卓SDK与NDK配置解决

解决方法: 设置JDK为JDK11 使用Android Studio下载 Android SDK Command-line Tools 10.0 打开Android SDK Location : 双击打开cmdline-tools 复制10.0中所有东西到latest中 点击Manage Kits并选择Devices 然后点击Android会弹出下图窗口,并自动更 安装完成 成功识别

股票套牢,如何解套?当下行情怎么赚钱?

今年开年大盘继续一路下行,今天更是直接跌破2800点,很多朋友都是套牢的阶段,这种时候我们怎样解套,在这种情况下,作为散户的我们又如何才可以赚到钱呢? 股票被套可以借用哪些工具解套?详细操作…

新数智空间:阿里云边缘云持续保持中国公有云市场第一

全球领先的 IT 市场研究和咨询公司 IDC 发布 《中国边缘云市场解读(2023H1)》报告 中国边缘公有云服务市场 阿里云持续第一 稳居市场第一,“边缘”逆势生长 近日,全球领先的 IT 市场研究和咨询公司 IDC 最新发布《中国边缘云市…

c++ 函数参数的传递

在 C++ 中,函数参数可以通过值传递、指针传递或引用传递的方式来传递。每种传递方式有其用途和行为特点。理解这些不同之处对于有效地使用 C++ 来说非常重要。 先大概了解一下各个指针的信息,再看实例 值传递(Pass by Value):创建实参的副本,函数中的改动不影响实际的变…

Git学习笔记(第2章):Git安装

官网地址:Githttps://git-scm.com/ Step1:查看Git的GNU协议 → 点击“Next” Step2:设置Git的安装位置(非中文、无空格的目录) → 点击“Next” Step3:选择Git的选项配置(推荐默认设置) → 点击“Next” Step4:设置Git…

POI实现Excel多行复杂表头导出

POI实现Excel多行复杂表头导出 1. pom文件添加POI相关依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.10-FINAL</version> </dependency> <dependency><groupId>o…

python代码练习:链表——分隔链表

参考知识&#xff1a; 什么是链表Optional有什么用 题目&#xff1a; 题目来源&#xff1a;力扣 代码&#xff1a; from typing import Optionalclass ListNode: 链表结点的数据类型 def __init__(self, val0,nextNone):self.val valself.next nextdef convert_to_linked…

index_jsp报错

今天跟着视频一模一样敲代码&#xff0c;一直报500 搜索了好几篇csdn&#xff0c;不断地修改添加的jstl.jar 和standard.jar&#xff0c;修改这两个jar包版本&#xff0c;还是报500 又看到说是因为tomcat10中存在jsp.jar&#xff0c;同时存在发生冲突&#xff0c;于是把tomcat…

安全审查常见要求

一、是否有密码复杂度策略、是否有密码有效期 1&#xff09;密码长度至少8位&#xff1b; 2&#xff09;要求用户密码必须包含大小写字母、数字、特殊字符 3&#xff09;避免常见密码 123456&#xff0c;qwerty, password; 4) 强制用户定期修改密码&#xff1b; 5&#x…

【C#】Int32.Parse()、Int16.Parse()

Int32.Parse() 和 Int16.Parse() 都是 C# 中用于将字符串转换为整数的方法&#xff0c;分别用于处理 32 位整数和 16 位整数。以下是它们的解释&#xff1a; Int32.Parse()&#xff1a; Int32 是 C# 中的数据类型&#xff0c;表示 32 位整数&#xff08;有符号整数&#xff09;…

字符型在内存中的存储

由于此字符型只占一个字节 所以它就不存在大端存储和小端存储。 字符型数据在内存中的存储的是ASCII码值转换成的二进制的补码&#xff08;有符号char的二进制也有原码&#xff0c;反码&#xff0c;补码之分&#xff09; 例 ↑的十进制的ASCII值为24 转换成二进制为00011000…

docker里Java服务执行ping命令模拟流式输出

文章目录 业务场景处理解决实现ping功能并实时返回输出实现长ping和中断请求docker容器找不到ping命令处理 业务场景 我们某市的客户&#xff0c;一直使用CS版本的信控平台&#xff0c;直接安装客户Windows server服务器上&#xff0c;主要对信号机设备进行在线管理、方案配时…

GORM 介绍及快速入门

GORM 介绍及快速入门 前言 GORM 是一个用 GoLang 语言编写的 ORM&#xff08;对象关系映射&#xff09;库。它被设计为开发者友好的方式来进行数据库操作。GORM 提供了一种高级的 API 来处理数据库的 CRUD&#xff08;创建、读取、更新、删除&#xff09;操作&#xff0c;它支…

Android Google 开机向导定制 setup wizard

Android 开机向导定制 采用 rro_overlays 机制来定制开机向导&#xff0c;定制文件如下&#xff1a; GmsSampleIntegrationOverlay$ tree . ├── Android.bp ├── AndroidManifest.xml └── res └── raw ├── wizard_script_common_flow.xml ├── wizard_script…

Peter:经济形势不好,一个最大的原因就是诚信道德的缺失 | 程客有话说002

《程客有话说》是我们最新推出的一个访谈栏目&#xff0c;邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事&#xff0c;我们尝试建立一个程序员交流与学习的平台&#xff0c;也欢迎大家推荐朋友或自己来参加我们的节目&#xff0c;一起加油。本期我们邀请的程序…

实验一 安装和使用Oracle数据库

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

vue同一个浏览器登录不同账号数据覆盖问题解决

同一个浏览器登录不同账号session一致&#xff0c;这就导致后面登录的用户数据会把前面登录的用户数据覆盖掉&#xff0c;这个问题很常见&#xff0c;当前我这边解决的就是同一个浏览器不同窗口只能登录一个用户&#xff0c;解决方案如下&#xff1a; 1、在App.vue中监听本地数…

基于人工蚁群、蚁群、遗传算法的多目标任务分配

matlab2020a可运行 基于人工蚁群、蚁群、遗传算法的多目标任务分配资源-CSDN文库