Linux学习[8]文件权限深入2 默认权限umask SUID/SGID/SBIT file指令

news2024/11/29 2:40:57

文章目录

  • 前言
  • 1. 默认权限umask
    • 1.1 默认权限含义
    • 1.2 查看默认权限
    • 1.3 默认权限在文件与目录的异同
  • 2. 特殊权限
    • 2.1 SUID
    • 2.2 SGID
    • 2.3 SBIT
    • 2.4 SUID/SGID/SBIT 权限设置
      • 2.4.1 数字法
      • 2.4.2 符号法
  • 3. file指令

前言

在linux学习6里面,通过ls -al命令列出文件的所有详细信息,对其中的几种权限的意思以及如何更改权限进行了阐述。这小节对文件的默认权限进行阐述。


1. 默认权限umask

1.1 默认权限含义

我们创建一个文件,例如touch test.sh,我们并没有指名文件的所有者,同组人以及其他用户的权限,但是我们通过ls还是可以看到这个文件在每一个用户组别上有对应的权限,这就是默认权限了。

1.2 查看默认权限

umask 就是指定 “目前使用者在创建文件或目录时候的权限默认值”。
查询umask的具体内容有两种指令:

  1. umask
  2. umask -S

前者是数字体态的权限设置分数,后者是以符号类型的方式来显示出权限。

在这里插入图片描述

对于umask指令,为什么得到的数字是0002,这个有啥含义呢?权限不是只有三个分组吗?怎么多了一个?

第一个0标识特殊权限,等下我们会讲。
第二个0标识文件拥有者所有的权限。
第三个0标识文件拥有者所有的权限。
第四个2标识文件拥有者所有的权限。

我们通过对比umaskumask -S两个指令输出的结果发现,当对应分组的权限数字为0时,这个分组的权限为rwx,为2时权限是rx

这里我们是否可以想到我第一节里面写的权限数字对应的含义:
写权限 r=4,读w=2,执行权限x=1

对比后我们可以发现,umask里面的数字其实是做的减法,0002这里2就表示在其他用户的权限中,没有读权限,就是在三个权限rwx:7中,减去w:2
如果是0那标识权限rwx:7一个都不少,保留所有权限。

1.3 默认权限在文件与目录的异同

默认权限在文件和目录上稍有些不同,如下图所示
在这里插入图片描述

我们可以看到文件是默认不带执行权限X的,而目录是带X的。
这个是因为我们通常情况下,创建文件不一定是可执行文件,也有可能是文本文件等;而目录创建了我们就要对它进行操作,比如进入目录这个操作就需要用到执行权限x,所以系统才会这样设置。


2. 特殊权限

刚才umask指令输出的对应结果有4个数字,第一个0表示特殊权限。
我们先来看特殊指令出现的情况
在这里插入图片描述

这里我们发现/tmp的权限里面有个t/usr/bin/passwd的权限有个s。这就是特殊权限了,区别于传统的rwx

2.1 SUID

基本上SUID有这样的限制与功能:

1.SUID 权限仅对二进制程序(binary program)有效;
2.执行者对于该程序需要具有 x 的可执行权限;
3.本权限仅在执行该程序的过程中有效 (run-time);
4.执行者将具有该程序拥有者 (owner) 的权限。

上面的话有些抽象,我们举个例子进行深入:
Linux 系统中,所有帐号的密码都记录在 /etc/shadow 这个文件里面,这个文件的权限为:“---------- 1 root root”,意思是这个文件仅有root可读且仅有root可以强制写入而已。 既然这个文件仅有 root 可以修改,并且用户名为pi的用户,通常情况下是可以修改自己的密码,那为什么pi用户可以修改自己的密码(即shadow文件的内容),这个问题大家是否想过呢?

pi 对于 passwd 这个程序来说是具有 x 权限的,表示 pi 能执行 passwd;
passwd 的拥有者是 root 这个帐号;
pi 执行 passwd 的过程中,会“暂时”获得 root 的权限;
/etc/shadow就可以被 pi 所执行的 passwd 所修改。

总结一下:pi拥有对passwd程序的可执行权限x,且passwd是二进制程序,执行过程中将会暂时获得root权限对/shadow进行操作。总而言之,SUID就是用A的尚方宝剑去执行本该A执行的任务。


2.2 SGID

SUID和SGID只有一个字只差,U与G,那对应的其实就是用户User和Group。

与 SUID 不同的是,SGID 可以针对文件或目录来设置。
如果是对文件来说, SGID 有如下的功能:

1.SGID 对二进制程序有用;
2.程序执行者对于该程序来说,需具备 x 的权限;
3.执行者在执行的过程中将会获得该程序群组的支持;

当一个目录设置了 SGID 的权限后,他将具有如下的功能:

1.使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
2.使用者在此目录下的有效群组(effective group)将会变成该目录的群组;

用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同。

这个权限的用法其实类似于SUID,就披个组群马甲进行操作,基本是一致的。


2.3 SBIT

SBIT(Sticky Bit)目前只针对目录有效,对于文件已经没有效果了。

SBIT 对于目录的作用是:

1.当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
2.当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件

举个例子:当甲这个使用者于 A 目录是具有群组或其他人的身份,并且拥有该目录 w 的权限, 这表示“甲使用者对该目录内任何人创建的目录或文件均可进行 “删除/更名/搬移” 等动作。” 不过,如果将 A 目录加上了 SBIT 的权限项目时, 则甲只能够针对自己创建的文件或目录进行删除/更名/移动等动作,而无法删除他人的文件。


2.4 SUID/SGID/SBIT 权限设置

2.4.1 数字法

类似于rwx的权限设置对应的数字,这三个也有对应的数字。

4 为 SUID
2 为 SGID
1 为 SBIT

所以我们在创建文件或者目录的时候给特殊权限可以这样:
这里第二句话;的作用其实就是标识执行完chmod之后紧跟着使用指令ls

在这里插入图片描述

对上面图片输出的-rwsr-xr-x进行分析

标识含义对应数字
-目录/
rws拥有者的权限为读写执行且用s替代x表示设定了SUID权限47(第一个标识特殊权限的数字,第二个标识拥有者的权限)
r-x分组所拥有的权限为读和执行5
r-x其他用户所拥有的的权限为读和执行5

写到这,那么添加其他特殊权限应该能依葫芦画瓢了。

有个特殊的例子这里提及一下:
在这里插入图片描述

这里S,T什么的大写了。
怎么会出现大写的 S 与 T 呢?不都是小写的吗? 因为 s 与 t 都是取代 x 这个权限的,但是我们是下达 7666 ,也就是说, user, group 以及 others 都没有 x 这个可执行的标志( 因为 666 嘛 ),所以,这个 S, T 代表的就是“空的”啦!怎么说? SUID 是表示“该文件在执行的时候,具有文件拥有者的权限”,但是文件 拥有者都无法执行了,哪里来的权限给其他人使用?当然就是空的啦

2.4.2 符号法

其中 SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t :

#设置权限成为 -rws–x–x 的模样:
chmod u=rwxs,go=x test; ls -l test
-rws–x–x 1 root root 0 Jun 16 02:53 test

承上,加上 SGID 与 SBIT 在上述的文件权限中!
chmod g+s,o+t test; ls -l test
-rws–s–t 1 root root 0 Jun 16 02:53 test


3. file指令

file指令通常用来查看文件的数据格式;
在这片博客里面写到一部分是因为如果我们查看可执行文件,那就会涉及到文件的suid权限。

通过file /usr/bin/passwd可以查看可执行文件的的所有基本数据。


总结:这篇文章主要对文件权限进行深入,关于默认权限以及特殊权限的相关操作是本节的重点。尝试自己举个简单的例子,似乎就变得简单了些。

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

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

相关文章

2023/4/30周报

目录 摘要 论文阅读 1、题目和现存问题 2、知识空间理论、GRU和自注意力机制 3、模型构建 4、实验准备 5、实验结果 深度学习 1、GRU 2、代码实例 3、GRU和GCN结合的可能性 总结 摘要 本周在论文阅读上,阅读了一篇基于自注意力机制和双向GRU神经网络的…

【MATLAB数据处理实用案例详解(17)】——利用概念神经网络实现柴油机故障诊断

目录 一、问题描述二、利用概念神经网络实现柴油机故障诊断原理三、算法步骤3.1 定义样本3.2 样本归一化3.3 创建网络模型3.4 测试3.5 显示结果 四、运行结果五、完整代码 一、问题描述 柴油机的结构较为复杂,工作状况非常恶劣,因此发生故障的可能性较大…

linux常用命令大全

作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,工作上会事半功倍,大大提高工作效率。 一. 文件和目录…

python使用迭代法验证角谷猜想

def fun(n):print(n)while n ! 1:n 3 * n 1 if n % 2 else n / 2print(finished)for i in range(2,1000):fun(i) 1、了解了什么是"角谷猜想" 对于任意一个自然数n,若n为偶数,则将其除以2;若n为奇数,则将其乘以3,然后再加1。如此经过有限次运算后,总可以得到自然数…

【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2

【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2 0、前言Abstract1 Introduction2 Background2.1 Vector Quantized Variational AutoEncoder 3 Method3.1 Stage 1: Learning Hierarchical Latent Codes3.2 Stage 2: Learning Priors over Latent …

【STM32】知识补充 晶振的基本原理及其应用

【STM32】知识补充 晶振的基本原理及其应用 概述晶振的基本原理晶振的性能参数晶振的分类晶振的应用晶振器在 STM32 上的应用总结 概述 晶振作为现代电子技中的重要组件, 广泛应用于各种电子设备中, 起到稳定时钟信号的作用. 本文将为您解释晶振的基本原理及其在实际应用中的用…

第 02 章 OSPF实验

2.1 OSPF 回顾 2.1.1 实验目的 在 CCNA 中,我们学习到了 OSPF 是一个链路状态路由协议,和 RIP 以及 EIGRP 的最大 不同在于对于它们对于网络的认识以及根本的算法的不同。通过对 CCNA 中 OSPF 配置实验 的回顾,从中加强我们对 OSPF 的理解。…

带你学c带你飞-P7取值范围

比特位 CPU能读懂的最小单元——比特位,bit,b 字节 内存机构的最小寻址单元——字节,Byte,B 1Byte8bit 进制 怎么算 注意:int默认是signed类型,signed类型第一位是符号位 符号位 存放signed类型的存…

对比体验 ChatGPT,聊聊文心一言的优缺点

在昨天文心一言发布后,我第一时间拿到了体验的资格,但第一次使用后却不禁有些失望。他的逻辑能力极度缺乏、创造力也差点意思。不过,今天再次高强度使用后,却又让我对这款产品的想法有了些许改变。 前言 将 2023 年称为 AI 纪元…

西门子PLC沿脉冲类指令汇总

S7-1200CPU提供了四种沿脉冲指令供用户使用,分别为:扫描操作数信号边沿指令、在信号边沿置位操作数的指令、扫描RLO的信号边沿指令以及检测信号边沿指令。 信号从0--1的时刻称为上升沿,信号从1--0的时刻称为下降沿,不管是上升沿还…

【VM服务管家】VM4.0平台SDK_2.1环境配置类

目录 2.1.1 环境配置:CSharp二次开发环境配置方法2.1.2 环境配置:Qt二次开发环境配置方法2.1.3 环境配置:MFC二次开发环境配置方法2.1.4 环境配置:VB.Net二次开发环境配置方法2.1.5 环境配置:运行出现Vm.Core.Solution…

python+django+vue消防知识宣传网站

开发语言:Python 框架:django Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 层随着移动应用技术的发展,越来越多的消防单位借助于移动手机、电脑完成生活中的事…

Ubuntu目录和文件的相关操作

目录 1、目录的切换 2、查看目录及文件 3、目录的常见操作 4、文件的常见操作 1、目录的切换 打开终端窗口(”ctrlaltt“) 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户…

01_JUC概述

1. JUC是什么? 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类。此包包括了几个小的、已标准化的可扩展框架,并提供一些功能实用的类,没有这些类,一些功能会很难实现或…

玩手机打电话识别监测算法 yolov8

玩手机打电话识别监测系统通过YOLOv8网络模型技术,玩手机打电话识别监测算法对现场有人玩手机抽烟打电话时可以立即自动进行抓拍存档。YOLOv8 算法的核心特性和改动可以归结为如下:提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率…

【全年汇总】2023年CCF人工智能会议截稿时间汇总(持续更新)

本博文是根据2022年CCF会议推荐的人工智能领域相关会议目录撰写。 一、截稿时间总览 截稿时间的总时间轴内容将会持续更新...... 往年投稿及录用情况及链接详见图片后面的内容。 二、会议详细目录 由于一些会议的投稿时间还没公开,因此根据往年投稿时间在表格中使…

石化企业数字化防爆融合通信解决方案

项目背景 石化工业是我国国民经济和社会发展的基础性、战略性产业,其发展和壮大受到了党和国家的高度重视。随着石化企业厂区规模的不断扩大以及技术的快速发展,现有石化企业专网通信系统建设相对滞后,缺乏结合人员管理、安全生产、安全通信…

商品详情API接口如何获取淘宝数据

淘宝是中国最大最受欢迎的电商平台之一,汇集了大量的商家和买家。在淘宝上热门商品的销量经常十分巨大,因此有些开发者和网站想要获取淘宝商品数据来进行一些分析。下面是一篇关于淘宝商品详情API接口获取淘宝数据的文章。 一、淘宝商品API接口介绍 淘…

HadaFS - Burst Buffer解读

背景 近几年AI,ML,HPC大火, 针对这些场景的存储技术及方案也逐步衍生出两个分支,第一支:以Lustre,BeeGFS等为代表的分布式并行文件系统, 这些文件系统对POSIX提供了很好的支持,各种…

Idea关闭或开启引用提示Usages和Annotations

IDEA的引用提示与Annotation 在2022版本的Idea中,新增了引用提示(Usages)和作者(Annotations)的功能。虽然用起来挺好用的,但对电脑还是有一定的压力,在配置比较低的电脑上,打开一个…