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 10月 16 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 Bitrwxrwxrwt
:具有 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 详细介绍
!!!!!!!!!!!!!还未写完!!!!!!!…...

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(抓取) 概念ÿ…...

老机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…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

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 抗噪声…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...