当前位置: 首页 > 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 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...