当前位置: 首页 > news >正文

Linux 中文件的权限说明

目录

  • 一:文件权限类型
  • 二:默认权限管理
    • 1. 查看当前用户的umask值
    • 2. 修改当前用户的umask值
    • 3. 根据umask计算默认权限
  • 三:普通权限管理
    • 1. 三种普通权限说明
      • 1.1 对于非目录文件来说
      • 1.2 对于目录文件来说
    • 2. 查看某个文件的权限信息
      • 2.1 使用 ls -l
      • 2.2 使用 stat
    • 3. 修改某个文件的权限信息
      • 3.1 chmod 的符号模式
      • 3.2 chmod 的数字模式
  • 四:特殊权限管理
    • 1. 三种特殊权限说明
      • 1.1 SUID 权限
      • 1.2 SGID 权限
      • 1.3 Sticky Bit

一:文件权限类型

Linux中文件的权限可以大致分为默认权限、普通权限和特殊权限三大类;

  • 默认权限:新建文件或目录时自动赋予的初始权限
  • 普通权限:包括文件或目录的读(r)、写(w)、执行(x)权限。
  • 特殊权限:对文件或目录的执行行为进行控制,包含 SUID、SGID、和 Sticky Bit

二:默认权限管理

Linux中创建文件的默认权限是由umask的值决定,而且还有个特点就是root用户的umask值和普通用户的umask值不一样;

1. 查看当前用户的umask值

umask的值是三位八进制数字,它表示需要去掉的权限。最前面的0表示这是一个八进制数。

# 在终端输入 umask 可以查看当前的 umask 值
ehigh@ubuntu:~$ umask 
0002root@ubuntu:~# umask 
0022

2. 修改当前用户的umask值

命令行修改umsk只会临时生效,系统重启后就失效了。

例如

umask  026

3. 根据umask计算默认权限

  • 非目录文件:666 - umask值 ,如果结果为奇数就 + 1

  • 目录文件:777 - umask值

例如umask为0002,文件的默认权限为:

666 - 002 = 644

文件默认权限基准值是666 是因为文件一般不需要可执行权限;
目录默认权限基准值是777 是因为目录需要“执行”权限才能进入和列出内容;
计算非目录文件权限时,如果结果是奇数说明具有执行权限,+1可以去掉其执行权限;

三:普通权限管理

1. 三种普通权限说明

1.1 对于非目录文件来说

  • 读取权限 (r):这意味着用户可以查看文件的内容。

  • 写入权限 (w):这意味着用户可以修改或删除文件。

  • 执行权限 (x):这意味着用户可以执行文件(如果它是一个可执行文件或脚本)

1.2 对于目录文件来说

  • 读取权限 (r):允许列出目录的内容。

  • 写入权限 (w):允许在目录中创建、删除或重命名文件。

  • 执行权限 (x):允许进入目录并访问其内容。

目录的最小权限是执行权限,既对于一个目录来说,必须要保证有执行权限,因为目录是一种特殊的文件类型,用于存储其他文件和目录。对于一个目录来说,必须拥有执行权限才能进入这个目录。不然连目录都没法进入。

2. 查看某个文件的权限信息

2.1 使用 ls -l

root@ubuntu:/home/ehigh# ls -l time_stamp.log 
-rw-r--r-- 1 root root 11 1016 19:05 time_stamp.log

2.2 使用 stat

root@ubuntu:/home/ehigh# stat time_stamp.log File: time_stamp.logSize: 11        	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 8936463     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-09-26 09:59:52.000000000 +0800
Modify: 2024-10-16 19:08:20.824239766 +0800
Change: 2024-10-16 19:08:20.824239766 +0800Birth: -

3. 修改某个文件的权限信息

通过chmod命令可以修改某个文件的权限信息,chmod有两种格式,字符格式和数字格式。

3.1 chmod 的符号模式

符号模式:用一个字符来表示某个权限,通过+、-、=符号来确认是增加权限还是去除权限。

表示用户:

  • a:表示所有的意思,包括文件所有者、所属组和其他用户
  • u:表示的是文件所有者
  • g:表示的是文件所属组
  • o:表示的是其他用户

执行的操作:

  • +:表示在原有权限的基础上加上指定权限
  • -:表示在原有权限的基础上减去指定权限
  • =:表示清空原有权限,使用当前的权限

权限类型:

  • x:表示可执行权限
  • r:表示可读权限
  • w:表示可写权限
  • -:单独的 - 表示无权限

例如:

# 给文件所有者增加可执行权限
chmod u+x file_name# 给所有用户(所有者、所属组、其它用户)增加可执行权限
chmod a+x file_name# 去除其它用户的r权限
chmod o-r file_name# 给文件所有者重新赋予权限
chmod a=rxw  file_name

3.2 chmod 的数字模式

数字模式由 三个八进制数字组成 ,从左到第一个数字代表文件所有者权限,第二个数字表示文件所属组权限,第三个数字表示其他用户权限。
类别的权限(属主、组用户、其他用户)都是通过这些数字的组合来表示

  • 1:表示可执行权限
  • 2:表示可写权限
  • 4:表示可读权限
  • 0:表示没有权限

例如

# 表示给所有者、所属组和其他用户都授予读写执行权限  7=4+2+1 表示具有读写执行权限
chmod 777 file_name

四:特殊权限管理

1. 三种特殊权限说明

1.1 SUID 权限

  • 默认状态;默认无SUID权限
  • 应用场景:用于可执行文件上,如果某个文件无可执行权限,则SUID不生效
  • 权限作用:任何用户执行该文件时,都会以文件属主的身份来运行该文件,而不仅仅是执行用户的身份。
  • 权限位置:出现在文件所有者可执行权限位置
  • 权限表示:文件所有者的可执行权限位置会变为s或S 表示设置了SUID
    • rws:表示 SUID 已启用,并且文件的所有者具有对该文件的执行权限,此时SUID会生效;
    • rwS:表示瑞谈SUID已启用,但是文件所有者对这个文件没有执行权限,此时SUID不生效;
  • 权限设置
    • 符号发:chmod u+s filename (只能给文件所有者 u 添加)
    • 数字法:chmod 4755 filename(数字 4 代表 SUID,设置时在常规权限前面加上4)

1.2 SGID 权限

  • 默认状态;默认无SGID权限
  • 应用场景:用于可执行权限或者目录
  • 权限作用
    • 应用于可执行文件时:执行改文件的用户会以属组的身份来运行该文件
    • 应用于目录文件时:所有在该目录中创建的文件或子目录将自动继承该目录的所属组,而不是创建者的有效组。
  • 权限位置:出现在文件所属组可执行权限位置
  • 权限表示:如果所属组的可执行权限位变为了s或S,则表示设置了SGID权限。
    • rwxr-sr-x:具有 SGID 权限,并且文件或目录对组用户有执行权限。
    • rwxr-Sr-x:具有 SGID 权限,但文件对组用户没有执行权限。
      权限设置
    • 符号法:chmod g+s filename(只能给文件所有者g 添加)
    • 数字法:chmod 2755 filename(数字 2 代表 SGID,设置时在常规权限前面加上2)

1.3 Sticky Bit

  • 默认状态;默认无 Sticky Bit 权限
  • 应用场景:目录文件
  • 权限作用:只有文件的所有者才可以删除或重命名文件,防止用户在公共目录中删除其他用户的文件。
  • 权限位置:出现在文件其他用户可执行权限位置
  • 权限表示:文件其他用户的执行权限位变为了t或T,表示设置了 Sticky Bit
    • rwxrwxrwt:具有 Sticky Bit 权限,并且目录对其他用户有执行权限;
    • rwxrwxrwT:具有 Sticky Bit 权限,但目录对其他用户没有执行权限;
      权限设置
    • 符号法:chmod o+t filename(省略 o 也可以直接加上 Sticky Bit
    • 数字法:chmod 1755 filename(数字1 代表 Sticky Bit ,设置时在常规权限前面加上1)

例如:passwd命令设置有SUID权限:
普通用户使用 passwd 命令修改自己的密码时,需要访问 /etc/shadow 文件,但是该文件只有 root 用户才有权限访问。
在这里插入图片描述
为了允许普通用户修改自己的密码,passwd 程序需要拥有 SUID 权限,这样普通用户在运行 passwd 程序时,就会暂时获得 root 用户的权限,可以访问 /etc/shadow 文件并修改自己的密码。
在这里插入图片描述


例如:temp目录设置有 Sticky Bit 权限
在这里插入图片描述

相关文章:

Linux 中文件的权限说明

目录 一:文件权限类型二:默认权限管理1. 查看当前用户的umask值2. 修改当前用户的umask值3. 根据umask计算默认权限 三:普通权限管理1. 三种普通权限说明1.1 对于非目录文件来说1.2 对于目录文件来说 2. 查看某个文件的权限信息2.1 使用 ls -…...

MySql数据库中数据类型

本篇将介绍在 MySql 中的所有数据类型,其中主要分为四类:数值类型、文本和二进制类型、时间日期、String 类型。如下(图片来源:MySQL数据库): 目录如下: 目录 数值类型 1. 整数类型 2. …...

Godot中的信号

目录 概念 signal connect方法连接Callable 信号要求参数 查看信号 连接信号 监听信号 Button - text属性 pressed 连接源 「按钮」的信号连接 使用代码,将方法与信号相连接 节点的connect方法 节点直接使用emit_signal方法通过字符串的方式触发信号…...

vba学习系列(8)--指定列单元格时间按时间段计数

系列文章目录 文章目录 系列文章目录前言一、背景二、VBA总结 前言 一、背景 时间格式:00:00:00 时间段格式:00:00:00 - 01:00:00 计数N列单元格时间位于时间段内的行数 二、VBA 代码如下(示例): Sub AssignTimeSeg…...

大型企业软件开发是什么样子的? - Web Dev Cody

引用自大型企业软件开发是什么样子的? - Web Dev Cody_哔哩哔哩_bilibili 一般来说 学技术的时候 我们会关注 开发语言特性 ,各种高级语法糖,底层技术 但是很少有关注到企业里面的开发流程,本着以终为始(以就业为导向…...

【stm32】DMA的介绍与使用

DMA的介绍与使用 1、DMA简介2、存储器映像3、DMA框图4、DMA基本结构5、DMA请求6、数据宽度与对齐7、数据转运DMA(存储器到存储器的数据转运)程序编写: 8、ADC连续扫描模式DMA循环转运DMA配置:程序编写: 1、DMA简介 DM…...

哈希表的魔力

哈希表与字典 普遍存在一种误解,认为“哈希表”和“字典”这两个术语可以互换。这种观念从根本上是不准确的,至少在计算机科学领域是如此。 字典是将键映射到值的数据结构的一般概念。而哈希表是字典的具体实现。 本质上,字典扮演着一个总体…...

《YOLO 目标检测》—— YOLO v3 详细介绍

!!!!!!!!!!!!!还未写完!!!!!!!&#xf…...

WNN 多模态整合 | Seurat 单细胞多组学整合流程

测试环境:CentOS7.9, R4.3.2, Seurat 4.4.0, SeuratObject 4.1.4 2024.10.23 # WNN library(ggplot2) library(dplyr) library(patchwork)1. 导入数据 (1). load counts of RNA and protein dyn.load(/home/wangjl/.local/lib/libhdf5_hl.so.100) library(hdf5r)…...

【Linux】磁盘文件系统(inode)、软硬链接

文章目录 1. 认识磁盘1.1 磁盘的物理结构1.2 磁盘的逻辑结构 2. 引入文件系统2.1 EXT系列文件系统的分区结构2.2 inode 3. 软硬链接3.1 软链接3.2 硬链接 在讲过了内存文件系统后,我们可以知道文件分为两种: 打开的文件(内存中)未…...

网安加·百家讲坛 | 徐一丁:金融机构网络安全合规浅析

作者简介:徐一丁,北京小西牛等保软件有限公司解决方案部总监,网络安全高级顾问。2000年开始从事网络安全工作,主要领域为网络安全法规标准研究、金融行业安全咨询与解决方案设计、信息科技风险管理评估等。对国家网络安全法规标准…...

九、pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover(悬停) 定义:发起交互的对象停留在可交互对象的交互区域。例如,当手触摸到物品表面(可交互区域)时,视为触发了Hover。 Grab(抓取) 概念&#xff…...

老机MicroServer Gen8再玩 OCP万兆光口+IT直通

手上有一台放了很久的GEN8微型服务器,放了很多年,具体什么时候买的我居然已经记不清了 只记得开始装修的时候搬家出去就没用了,结果搬出去有了第1个孩子,孩子小的时候也没时间折腾,等孩子大一点的时候,又有…...

jmeter 从多个固定字符串中随机取一个值的方法

1、先新增用户参数,将固定值设置为不同的变量 2、使用下面的函数,调用这写变量 ${__RandomFromMultipleVars(noticeType1|noticeType2|noticeType3|noticeType4|noticeType5)} 3、每次请求就是随机取的值了...

priority_queue (优先级队列的使用和模拟实现)

使用 priority_queue 优先级队列与 stack 和 queue 一样,也是一个容器适配器,其底层通过 vector 来实现的。与 stack 和 queue 不同的是,它的第一个元素总是它所包含的元素中最大或最小的一个。 也就是说,优先级队列就是数据结…...

VisionPro 手部骨骼跟踪 Skeletal Hand Tracking 虚拟首饰

骨骼手部跟踪由XR Hands Package中的Hand Subsystem提供。使用场景中的Hand Visualizer组件,用户可以显示玩家手部的蒙皮网格或每个关节的几何图形,以及用于基于手部物理交互的物理对象。用户可以直接针对Hand Subsystem编写 C# 脚本,以推断骨…...

class 9: vue.js 3 组件化基础(2)父子组件间通信

目录 父子组件之间的相互通信父组件传递数据给子组件Prop为字符串类型的数组Prop为对象类型 子组件传递数据给父组件 父子组件之间的相互通信 开发过程中,我们通常会将一个页面拆分成多个组件,然后将这些组件通过组合或者嵌套的方式构建页面。组件的嵌套…...

Laravel|Lumen项目配置信息config原理

介绍 Laravel 框架的所有配置文件都保存在 config 目录中。每个选项都有说明,你可随时查看这些文件并熟悉都有哪些配置选项可供你使用。 使用 您可以在应用程序的任何位置使用全局 config 辅助函数轻松访问配置值。 可以使用“点”语法访问配置值,其中…...

2024系统分析师考试---论区块链技术及其应用

试题三论区块链技术及其应用 区块链作为一种分布式记账技术,目前已经被应用到了资产管理、物联网、医疗管理、政务监管等多个领域,从网络层面来讲,区块链是一个对等网络(Peer to Peer,P2P),网络中的节点地位对等,每个节点都保存完整的账本数据,系统的运行不依赖中心化节…...

为您的 Raspberry Pi 项目选择正确的实时操作系统(RTOS)

在嵌入式系统设计中,实时操作系统(RTOS)的选择对于确保项目的实时性能和可靠性至关重要。Raspberry Pi,尤其是其最新的RP2040微控制器,为开发者提供了一个功能强大的平台来实现各种实时应用。本文将探讨如何为您的Rasp…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...