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

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
2
3
 

r
w
x
 

4
2
1
 

owner 读文件
owner 写文件
owner 执行文件
 

owner 读目录
owner 写目录
owner 进入目录
 

u

4

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 是指 ugoa(代表用户、组、其他、全部)
  • What 是指 +-=(代表添加、删除、精确设置)
  • Which 是指 rwx X(代表读取、写入、执行文件或进入目录)
  • 注:对目录设置执行权限需要使用 X

数值八进制法(Octal Method)

chmod ### file|directory


 

  • 每个数字代表一个访问级别的权限:usergroupother
  • 数字的计算方法是:将每个权限的数值加在一起,其中 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 示例:
[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&#xff0c;qt5 源码下载编译 进入OpenMesh官网OpenMesh官网 https://www.graphics.rwth-aachen.de/software/openmesh/download/ 使用cmake gui 注意&#xff1a;先安装qt5 使用 CMake-Gui 构建 vs 2019 项目 注意 where is the source code 是<project…...

std::env是什么库?|Python一对一教学答疑

你好&#xff0c;我是悦创。 std::env 是 Rust 标准库中的一个模块&#xff0c;提供了访问操作系统环境的功能&#xff0c;比如处理环境变量、程序参数等。这个模块包含了一系列的函数和类型&#xff0c;用于管理与程序执行环境相关的信息。以下是 std::env 模块提供的一些主要…...

Go语言--广播式并发聊天服务器

实现功能 每个客户端上线&#xff0c;服务端可以向其他客户端广播上线信息&#xff1b;发送的消息可以广播给其他在线的客户支持改名支持客户端主动退出支持通过who查找当前在线的用户超时退出 流程 变量 用户结构体 保存用户的管道&#xff0c;用户名以及网络地址信息 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的配置&#xff1a;开启注解驱动3.2 Spring MVC的配置&#xff1a;视图解析器3.3 Spring MVC的配置&…...

MQTT——Mosquitto使用(Linux订阅者+Win发布者)

前提&#xff1a;WSL&#xff08;Ubuntu22&#xff09;作为订阅者&#xff0c;本机Win10作为发布者。 1、Linux安装Mosquitto 命令行安装。 sudo apt-get install mosquitto 以上默认只安装了mosquitto的服务&#xff0c;不带测试客户端工具mosquitto_sub和mosquitto_pub。如…...

ArcGIS识别不GDB文件地理数据库显示为空?

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 我们经常会碰到拷贝的GDB文件ArcGIS无法识别&#xff0c;软件只是把他当做普通的文件夹去看待&am…...

uniapp微信小程序 TypeError: $refs[ref].push is not a function

我的写法 this.$refs.addPopup.open();报错 打印出来是这样的 解决 参考未整理 原因 在当前页面使用的v-for循环 并且循环体内也有组件使用了ref&#xff08;而我没有把每个ref做区别命名&#xff09; 这样就导致了我有很多同名的ref&#xff0c;然后就报错了 解决办法&a…...

Django任务管理

1、用django-admin命令创建一个Django项目 django-admin startproject task_manager 2、进入到项目下用命令创建一个应用 cd task_manager python manage.py startapp tasks 3、进入models.py定义数学模型 第2步得到的只是应用的必要空文件&#xff0c;要开始增加各文件实际…...

Hive 常见问题

Hive 内部表和外部表的区别 外部表在创建时需要加关键字 external&#xff1b;创建内部表时&#xff0c;会将数据移动到数据仓库指定的路径&#xff1b;创建外部表时&#xff0c;不会移动数据&#xff0c;只会记录数据所在的路径&#xff1b;删除内部表时&#xff0c;会删除元…...

51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动大屏_硬件SPI4_参考代码(v1.3)

单片机实际不限&#xff0c;这里采用的STC最新、主推的型号&#xff0c;比如STC8H8K64U、STC8051U34K64进行实验测试&#xff0c;您可以换用不同型号。目前测试这两个系列&#xff0c;显示速度均相当不错&#xff0c;软件设计也是极为简单。各篇文章下方均提供源码供参考下载。…...

实习随笔【前端技术实现全局添加水印】

有一些数据比较重要的项目&#xff0c;往往需要对数据进行保护措施&#xff0c;本文介绍常见策略——全局添加水印。 1、创建水印组件 <template><div class"water-mark"><div class"water-mark-content"><span class"phone&qu…...

【软件测试】编写测试用例篇

前面部分主要是编写测试用例的方法和方向&#xff0c;后面一部分是编写出具体的测试用例 目录 什么是测试用例 1.设计测试用例的万能公式 1.1.从思维出发 1.2.万能公式 1.3.弱网测试 1.4.安装与卸载测试 2.设计测试用例的方法 2.1.基于需求的设计方法 2.2.等价类 2.3…...

转型AI产品经理需要掌握的硬知识(二):AI常见概念和算法梳理

上一篇文章介绍AI产品经理能力模型&#xff0c;人工智能的发展历史&#xff0c;人工智能常见概念的结构梳理&#xff0c;也简要做了BAT人工智能的优势分析&#xff0c;感兴趣的朋友可以点击链接查看上文。转型AI产品经理需要掌握的硬知识一&#xff1a;AI产品能力框架和看待AI的…...

mysql-connector-java 8.0.33 反序列化漏洞

前言 经过与oracle官方沟通&#xff0c;在最新的mysql-connector-j 9.0.0里不存在这个问题&#xff0c;所以他们不认为这是个漏洞 不过确实&#xff0c;mysql-connector-java这个分支已经迁移到mysql-connector-j了&#xff0c;当时没注意&#xff0c;交的时候只注意了mysql-c…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...