Linux基础知识之Linux文件系统权限
概述
- 文件权限控制对文件的访问
- 可以针对文件所属用户、所属组和其他用户可以设置不同的权限
- 权限具有优先级。user 权限覆盖 group 权限,后者覆盖 other 权限
权限:读取、写入和执行
| 对文件的影响 | 对目录的影响 | |
| r (读取) | 可以读取文件的内容 | 可以列出目录的内容(文件名) |
| w (写入) | 可以更改文件的内容 | 可以创建或删除目录中的任意文件 |
| x (执行) | 可以作为命令执行文件 | 目录可以成为当前工作目录(可以 cd 它,但还需要读取权限才能列出里面的文件) |
- 用户通常对目录具有 r 和 x 的权限,可以进入目录并列出文件(如果对目录只有 r 权限,则只能列出目录中文件名称,无法获得属性)
- 对文件所在目录具有所有权或写入权限的用户可以删除此文件,无论文件本身权限如何.
- root 用户拥有系统最高权限
查看文件和目录的权限及所有权
[student@workstation ~]$ touch test
[student@workstation ~]$ ls -l test
-rw-r--r--. 1 student student 0 May 17 18:44 test
[student@workstation ~]$ ls -ld .
drwx------. 17 student student 4096 May 17 18:44 .
[student@workstation ~]$ ls -ld /home
drwxr-xr-x. 5 root root 53 May 18 2022 /home
- 上述几个ls命令, 我们来看其输出的第一个字段 -rw-r--r--. drwx------. drwxr-xr-x.
- 第一位表示文件类型: - 表示普通文件、 d 表示目录、 l 表示软链接、 b 表示块设备、 c 表示字符设备、 p 表示管道、 s 表示 socket
- 接下来九位代表文件权限,分 3 组,每组 3 个字符,每组分别对应所属用户、所属组、其他用户权限
- 权限可以表示为: rwx 或 - (表示未设置权限)
权限依据优先匹配原则
| 对应权限 | 对应权值 | 文件权限 | 目录权限 | 每三位一组 | |
| 1 | r | 4 | owner 读文件 | owner 读目录 | u |
| 5 6 | r w x | 4 2 1 | group 读文件 group 写文件 group 执行文件 | group 读目录 group 写目录 group 进入目录 |
g |
| 7 8 9 | r w x | 4 2 1 | other 读文件 other 写文件 other 进入目录 | other 读目录 other 写目录 other 进入目录 |
o |
更改文件和目录的权限
- chmod (change mode)命令用于修改文件权限,可使用符号法或八进制法来设置权限
符号法(Symbolic Method)
chmod Who/What/Which file|directory
- Who 是指 u、g、o、a(代表用户、组、其他、全部)
- What 是指 +、-、=(代表添加、删除、精确设置)
- Which 是指 r、w、x 或 X(代表读取、写入、执行文件或进入目录)
- 注:对目录设置执行权限需要使用 X
数值八进制法(Octal Method)
chmod ### file|directory
- 每个数字代表一个访问级别的权限:user、group、other
- 数字的计算方法是:将每个权限的数值加在一起,其中 4 代表读取、2代表写入、1代表执行
- 有经验的管理员通常使用数值权限,因为它们的输入比较短
- 下图说明了系统如何解释 644 八进制权限值

更改文件和目录的用户或组所有权
- 新文件由创建该文件的用户所有
- 只有 root 用户可以更改拥有文件的用户,组所有权可以由 root 用户或文件的所有者来设置,root 用户可将文件所有权授予任何组,而普通用户仅可将文件所有权授予他们所属的组
- 使用 chown (change owner)命令可更改文件所有权, -R 递归
[root@workstation ~]# mkdir Pictures[root@workstation ~]# ls -l
total 0drwxr-xr-x. 2 root root 6 May 17 18:47 Pictures[root@workstation ~]# chown student:wheel Pictures/[root@workstation ~]# ls -l
total 0drwxr-xr-x. 2 student wheel 6 May 17 18:47 Pictures
管理默认权限和文件访问
特殊权限
特殊权限构成了除了基本用户、组和其他类型之外的第四种权限类型。顾名思义,这些权限提供了额外的访问相关功能,超出了基本权限类型允许的范畴。
特殊权限位浅析
| 对文件的影响 | 对目录的影响 | |
| u+s(suid) | 以拥有文件的用户身份, | 对目录无影响 |
| g+s(sgid) | 以拥有文件的组身份执行文件 | 在目录中最新创建的文件属于父目录属组 |
| o+t (sticky) | 无影响 | 用户仅可以删除其文件,而无法删除或强制保存其他用户的文件 |
suid 示例:
ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 35504 Jul 16 2010 /usr/bin/passwd
sgid 示例:
ls -ld /run/log/journal
drwxr-sr-x. 3 root systemd-journal 60 May 18 09:15 /run/log/journal
sticky 示例:
ls -ld /tmp
drwxrwxrwt. 39 root root 4096 Feb 8 20:52 /tmp
设置特殊权限
用符号表示:setuid = u+s,setgid=g+s,sticky=o+t
[root@workstation ~]# mkdir example
[root@workstation ~]# chmod g+s example
[root@workstation ~]# ls -ld example
drwxr-sr-x. 2 root root 6 May 17 19:16 example
用数值法表示:setuid=4;setgid=2;sticky=1
[root@workstation ~]# mkdir exam
[root@workstation ~]# chmod 2770 exam
[root@workstation ~]# ls -ld exam
drwxrws---. 2 root root 6 May 17 19:17 exam
文件默认权限
- 创建新文件或目录时,会为其分配初始权限。有两个因素会影响这些初始权限。首先是创建常规文件还是目录。其次是当前的 umask
- 如创建新目录,操作系统会为其分配权限 0777。如果是创建文件,操作系统会为其分配权限 0666
- shell 会话还会设置一个 umask,进一步限制初始设置的权限。这是一个八进制位掩码,用于清除由该进程创建的新文件和目录的权限。例如 umask 0002 可清楚其他用户的写入位。前导零表示特殊的用户和组权限未被清除。


- umask 示例:
[root@workstation ~]# su - student
Last login: Fri May 17 18:44:12 EDT 2024 on pts/0
[student@workstation ~]$ umask
0022
[student@workstation ~]$ touch abc
[student@workstation ~]$ ls -l abc
-rw-r--r--. 1 student student 0 May 17 19:20 abc
- root 用户可以通过在 /etc/profile.d 目录中添加 local-umask.sh 启动脚本来更改默认的 umask
- 用户可以在他们的.bash_profile 和.bashrc 文件中覆盖系统默认值.
[root@workstation ~]# cat /etc/profile.d/local-umask.sh
# Overrides default umask configuration asda sda
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; thenumask 007
elseumask 022
fi
[root@workstation ~]# su - student
Last login: Fri May 17 19:20:28 EDT 2024 on pts/0
[student@workstation ~]$ umask
0007
[root@workstation ~]# useradd test
[root@workstation ~]# su - test
[test@workstation ~]$ umask
0007 — Linux文章推荐 —
【资料领取】200个Linux常用命令手册
《鸟哥Linux私房菜》全新完整中文版PDF
40 个简单又有效的 Linux Shell 脚本示例
linux运维必备,100道常见面试题
超强linux学习笔记,值得一看(附PDF下载)
红帽认证有什么优势?速看本文
5 种 Linux 安装包管理工具中文手册!抓紧看!
END
微思网络,始于2002年
专业IT认证培训22年,面向全国招生!
微思-主要课程有:
*网络技术:华为HCIA/ HCIP/HCIE;思科CCNA/CCNP/CCIE
*Linux技术:红帽 RHCE/RHCA
*K8S&容器:CKA/CKS
*数据库:ORACLE OCP/ OCM ;MySQL ;达梦数据库
*虚拟化:VMware VCP/VCAP
*安全认证:CISP体系/CISSP/ CISA;CCSK;CISAW体系
*管理类:PMP 项目管理;软考中/高项;ITIL体系;Togaf
其他课程如:ACP;Azure...

相关文章:
Linux基础知识之Linux文件系统权限
概述 文件权限控制对文件的访问可以针对文件所属用户、所属组和其他用户可以设置不同的权限权限具有优先级。user 权限覆盖 group 权限,后者覆盖 other 权限 权限:读取、写入和执行 权限 对文件的影响 对目录的影响 r (读取) 可以读取文件的内容 …...
Qt qml详细介绍
一.基本类型 QML的基本类型包括了很多不同的类型,这些类型可以用于定义用户界面元素、属性和信号。以下是一些常用的QML基本类型及其详细介绍: 数值类型:包括整数类型(int、uint、short、ushort等)和浮点数类型&#…...
深度解析:如何优雅地删除GitHub仓库中的特定commit历史
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
JS之短路操作符
短路操作符(Short-circuit Operator)是 JavaScript 中的一个概念,这些操作符同样适用于 TypeScript,因为 TypeScript 是 JavaScript 的类型超集。短路操作符主要包括逻辑“与”(&&)和逻辑“或”&am…...
【Linux】安装PHP扩展-redis
说明 本文档是在centos7.6的环境下,安装PHP7.4之后,安装对应的PHP扩展包redis。 一、下载redis扩展 pecl官方地址:PECL :: The PHP Extension Community Library 下载的版本是:redis-5.3.7.tgz 二、安装redis扩展 1.上传 redis 压缩包到…...
内衣洗衣机怎么选?分享五款人气巅峰机型,选对不选贵
随着科技的不断发展,内衣裤洗衣机成为了家庭必备的家电之一。选择一个好的品牌对于日后的使用体验至关重要。市场上内衣洗衣机型号繁多,究竟哪个牌子好用呢?下面给大家分享五款无论是口碑还是价格,都称得上是公认好用又实惠的内衣…...
OpenMesh入门,安装,运行示例Hello World
安装 环境 win10,qt5 源码下载编译 进入OpenMesh官网OpenMesh官网 https://www.graphics.rwth-aachen.de/software/openmesh/download/ 使用cmake gui 注意:先安装qt5 使用 CMake-Gui 构建 vs 2019 项目 注意 where is the source code 是<project…...
std::env是什么库?|Python一对一教学答疑
你好,我是悦创。 std::env 是 Rust 标准库中的一个模块,提供了访问操作系统环境的功能,比如处理环境变量、程序参数等。这个模块包含了一系列的函数和类型,用于管理与程序执行环境相关的信息。以下是 std::env 模块提供的一些主要…...
Go语言--广播式并发聊天服务器
实现功能 每个客户端上线,服务端可以向其他客户端广播上线信息;发送的消息可以广播给其他在线的客户支持改名支持客户端主动退出支持通过who查找当前在线的用户超时退出 流程 变量 用户结构体 保存用户的管道,用户名以及网络地址信息 typ…...
Spring MVC 全注解开发
1. Spring MVC 全注解开发 文章目录 1. Spring MVC 全注解开发2. web.xml 文件 的替代2.1 Servlet3.0新特性2.2 编写 WebAppInitializer 3. Spring MVC的配置3.1 Spring MVC的配置:开启注解驱动3.2 Spring MVC的配置:视图解析器3.3 Spring MVC的配置&…...
MQTT——Mosquitto使用(Linux订阅者+Win发布者)
前提:WSL(Ubuntu22)作为订阅者,本机Win10作为发布者。 1、Linux安装Mosquitto 命令行安装。 sudo apt-get install mosquitto 以上默认只安装了mosquitto的服务,不带测试客户端工具mosquitto_sub和mosquitto_pub。如…...
ArcGIS识别不GDB文件地理数据库显示为空?
点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 我们经常会碰到拷贝的GDB文件ArcGIS无法识别,软件只是把他当做普通的文件夹去看待&am…...
uniapp微信小程序 TypeError: $refs[ref].push is not a function
我的写法 this.$refs.addPopup.open();报错 打印出来是这样的 解决 参考未整理 原因 在当前页面使用的v-for循环 并且循环体内也有组件使用了ref(而我没有把每个ref做区别命名) 这样就导致了我有很多同名的ref,然后就报错了 解决办法&a…...
Django任务管理
1、用django-admin命令创建一个Django项目 django-admin startproject task_manager 2、进入到项目下用命令创建一个应用 cd task_manager python manage.py startapp tasks 3、进入models.py定义数学模型 第2步得到的只是应用的必要空文件,要开始增加各文件实际…...
Hive 常见问题
Hive 内部表和外部表的区别 外部表在创建时需要加关键字 external;创建内部表时,会将数据移动到数据仓库指定的路径;创建外部表时,不会移动数据,只会记录数据所在的路径;删除内部表时,会删除元…...
51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动大屏_硬件SPI4_参考代码(v1.3)
单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64U、STC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。…...
实习随笔【前端技术实现全局添加水印】
有一些数据比较重要的项目,往往需要对数据进行保护措施,本文介绍常见策略——全局添加水印。 1、创建水印组件 <template><div class"water-mark"><div class"water-mark-content"><span class"phone&qu…...
【软件测试】编写测试用例篇
前面部分主要是编写测试用例的方法和方向,后面一部分是编写出具体的测试用例 目录 什么是测试用例 1.设计测试用例的万能公式 1.1.从思维出发 1.2.万能公式 1.3.弱网测试 1.4.安装与卸载测试 2.设计测试用例的方法 2.1.基于需求的设计方法 2.2.等价类 2.3…...
转型AI产品经理需要掌握的硬知识(二):AI常见概念和算法梳理
上一篇文章介绍AI产品经理能力模型,人工智能的发展历史,人工智能常见概念的结构梳理,也简要做了BAT人工智能的优势分析,感兴趣的朋友可以点击链接查看上文。转型AI产品经理需要掌握的硬知识一:AI产品能力框架和看待AI的…...
mysql-connector-java 8.0.33 反序列化漏洞
前言 经过与oracle官方沟通,在最新的mysql-connector-j 9.0.0里不存在这个问题,所以他们不认为这是个漏洞 不过确实,mysql-connector-java这个分支已经迁移到mysql-connector-j了,当时没注意,交的时候只注意了mysql-c…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

