一文了解 Linux 系统的文件权限管理

news2024/11/24 14:19:24

文章目录

  • 引入
  • Linux文件权限模型
  • 查看文件权限
  • 权限信息解析
  • 修改文件权限
    • 符号模式
    • 八进制数字模式

引入

在Linux操作系统中,我们想查看我们对文件拥有哪些权限时,可以在终端键入ls -lll命令,终端会输出当前路径下的文件信息,如文件名称、权限信息、文件所有者和所属组等信息。例如:

image-20241011213340644

图中类似 -rw-r--r-- 的字符串清晰地展示了对应文件的权限信息,包括用户、组和其他用户的读、写和执行权限。因此,理解这些权限的含义以及如何进行管理,我们就可以通过控制文件的访问权限来确保数据的安全性和完整性。

Linux文件权限模型

Linux系统中的文件权限主要分为三种:读取(Read)、写入(Write)、执行(Execute)。每个文件都有一个所有者,称为用户(User),用户对其文件拥有特定的权限,能够决定其他人(Others)可以访问或修改这些文件;用户也可以被组织成组,组内的成员可以共享特定的文件访问权限,每个用户可以属于一个或多个用户组(Group)

每种类型的用户都有读(r)、写(w)和执行(x)三种文件权限。文件所有者是创建文件或目录的用户,拥有完全的控制权;文件所属组是一组用户的集合,共享相同的权限;其他用户则是系统中除文件所有者和所属组之外的所有用户。

查看文件权限

我们可以使用ls -lll命令查看文件和目录的详细信息,包括文件权限:

  • 查看指定文件 file.txt 的详细信息:

    ls -l file.txt
    
  • 使用ls -l命令查看当前目录下所有文件的信息:

    ls -l
    
  • 使用ll命令查看当前目录下所有文件的信息:

    ll
    

权限信息解析

Linux系统文件的读取、写入、执行三种权限分别使用r,w,x表示:

权限类型符号表示描述
读取r允许用户查看文件内容或列出目录中的文件
写入w允许用户修改文件内容或在目录中添加、删除文件
执行x允许用户执行文件(如果是可执行程序)或访问目录

Linux 使用10位字符表示文件的权限信息:

5c59d370974eb107062370a4cda6fc95

第1位用于标识文件类型(如普通文件、目录);后9位表示文件权限,分为三组,每组三个字符,从左到右依次对应所有者、用户组及其他用户对文件所拥有的操作权限。详细解析对应如下表:

下标含义说明
1文件类型- | d | l文件类型(-:普通文件,d:目录,l:符号链接)
2所有者权限r | -r:所有者拥有读取权限;-:所有者无读取权限
3w | -w:所有者拥有写入权限;-:所有者无写入权限
4x | -x:所有者拥有执行权限;-:所有者无执行权限
5组用户权限r | -r:组用户拥有读取权限;-:组用户无读取权限
6w | -w:组用户拥有写入权限;-:组用户无写入权限
7x | -x:组用户拥有执行权限;-:组用户无执行权限
8其他用户权限r | -r:其他用户拥有读取权限;-:其他用户无读取权限
9w | -w:其他用户拥有写入权限;-:其他用户无写入权限
10x | -x:其他用户拥有执行权限;-:其他用户无执行权限

执行 ll 命令后,终端输出结果的格式通常如下:

image-20241013145609082

从左到右,这一行信息可以分解为以下几个部分:

属性说明
文件类型和权限-rw-rw-rw-表示这是一个普通文件,拥有读、写、执行权限
硬链接数1表示链接到该文件的硬链接数量为1
文件所有者root表示文件的创建者或所有者为 root 用户
文件所属组root表示与该文件关联的用户组为 root 组
文件大小664以字节为单位显示文件的大小
最后修改时间10月 8 14:06表示文件最后一次修改的日期和时间
文件名compara_card.sh表示该文件的名称为compara_card.sh

上述示例中的 -rw-rw-rw- 的含义如下:

  • 第一个字符-表示这是一个普通文件(如果是d则表示目录)。
  • 接下来的三个字符rw-表示文件所有者的权限:r表示可读,w表示可写,-表示没有执行权限。
  • 中间的三个字符rw-表示同组用户的权限,意义与所有者相同。
  • 最后三个字符rw-表示其他用户的权限,也同样表示可读和可写,但没有执行权限。

即该文件允许所有用户读取和写入,但不允许执行。

修改文件权限

Linux 修改文件和目录的权限需要使用 chmod 命令。而权限的设置有两种方式:符号模式八进制数字模式

符号模式

符号模式使用用户类型(u、g、o、a)和权限(r、w、x)来修改文件和目录的权限,格式为:

chmod [ugoa][+-=][rwx] file
  • [ugoa]:用户类别

    用户类型符号表示说明
    所有者u文件的创建者
    用户组g与文件所有者同组的用户
    其他用户o不属于文件所有者或同组用户的所有其他用户
    所有用户au, g, o 的组合,即系统中的所有用户
  • [±=]:操作符

    操作符描述
    +增加权限
    -删除权限
    =设置权限(仅指定的权限有效)
  • [rwx]:权限类型

    符号表示描述
    r读取权限
    w写入权限
    x执行权限

修改用户权限示例如下:

  1. 给文件所有者增加执行权限:

    chmod u+x file
    
  2. 从同组用户中删除写权限:

    chmod g-w file
    
  3. 将其他用户的权限设置为只读:

    chmod o=r file
    

八进制数字模式

image-20241011210602511

八进制数字模式的权限数值由三位八进制数字组成,每位分别代表不同的用户类别。即:

  • 第一位:文件所有者的权限
  • 第二位:同组用户的权限
  • 第三位:其他用户的权限

每一位八进制数字又拆分为三个二进制数字表示对应的权限(r、w、x),三位二进制数字可以表示不同的权限组合:

权限组合二进制八进制权限描述
无权限0000不允许任何操作
只执行(x)0011仅允许执行
只写(w)0102仅允许修改
写+执行(wx)0113允许修改和执行
只读(r)1004仅允许读取
读+执行(rx)1015允许读取和执行
读+写(rw)1106允许读取和修改
读+写+执行(rwx)1117允许读取、修改和执行

例如,运行以下命令将权限设置为754

chmod 754 example.txt
  • 第一位7(二进制111):文件所有者具有读、写和执行权限。
  • 第二位5(二进制101):同组用户具有读和执行权限。
  • 第三位4(二进制100):其他用户具有读权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212474.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3集成electron

安装说明 vue集成electron时,会用到两个依赖。分别是electron和electron-builder,前者是开发环境下使用,后者是打包部署时使用。安装时,可在线安装也可离线安装。所谓离线安装就是自己下载好用到的包,然后放到指定目录…

Spring Boot知识管理系统:安全与合规性

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

HI3516DV500 相机部分架构初探

Hi3516DV500 是一颗面向视觉行业推出的高清智能 Soc。该芯片最高支持 2 路 sensor 输入,支持最高 5M30fps 的 ISP 图像处理能力,支持 2F WDR、多级降噪、六轴防 抖、多光谱融合等多种传统图像增强和处理算法,支持通过 AI 算法对输入图像进行实…

Mysql(3)—数据库相关概念及工作原理

一、数据库相关概念 ​ 数据库(Database, DB) : 数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。 数据库管理系统(Database Management System, DBMS) &#xf…

树莓派应用--AI项目实战篇来啦-15.SSD Mobilenet V3目标检测

1. Mobilenet 介绍 Mobilenet 是一种专为移动和嵌入式视觉应用而设计的卷积神经网络。它们不使用标准的卷积层,而是基于使用深度可分离卷积的简化架构,使用这种架构,我们可以为移动和嵌入式设备(例如:树莓派&#xff0…

Navicat 关于SQLserver的连接问题

1、如果出以下问题,就需要安装驱动程序,如下图: 2、在Navicat的根目录下有一个驱动安装文件,安装后就可以连接上了.

Cisco ACI常见问题FAQ科普

这里有个思科的官方链接,不过里面很多是商务说辞,也就是吹牛,仅做为参考。 https://www.cisco.com/c/dam/global/en_sg/solutions/data-center-virtualization/application-centric-infrastructure/insieme_faq.pdf 下面是我自己的理解 0 …

Windows 安装Redis(图文详解)

Windows 安装Redis(图文详解) Redis是什么数据库? Remote Dictionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语…

CleanMyMac X4.15.9破解版激活码许可证

CleanMyMac X:你的Mac电脑的“私人健身教练” ### 一键瘦身,轻松给Mac电脑“减减肥” 🏋️‍♂️ 大家有没有觉得,自己的Mac电脑用久了,就变得越来越“胖”,越来越慢呢?别怕,今天我要…

Qt获取磁盘信息+表格显示

效果展示 主要代码 获取磁盘相关数据 获取磁盘数据 Qt 没有提供相关的接口,需要使用 Windows API。接口解释如下: BOOL GetDiskFreeSpaceExW([in, optional] LPCWSTR lpDirectoryName,[out, optional] PULARGE_INTEGER lpFreeBytesAvailable…

chattts一步步的记录,先跑起来。

0.下载git工具 Git - Downloads (git-scm.com)https://git-scm.com/downloads Download – TortoiseGit – Windows Shell Interface to Githttps://tortoisegit.org/download/ 1.安装 随意,可以安汉化,也可不安。无所谓 2.建个目录,我的上…

Prometheus+Grafana 监控 K8S Ingress-Ningx Controller

文章目录 一、prometheus中添加ingress-nginx的服务发现配置二、ingress-nginx controller的service添加端口暴露监控指标三、grafana添加ingress-nginx controller的监控模版 ingress-nginx默认是没有开启监控指标的,需要我们在ingress-nginx controller的svc里面开…

K8S配置MySQL主从自动水平扩展

前提环境 操作系统Ubuntu 22.04 K8S 1.28.2集群(1个master2个node) MySQL 5.7.44部署在K8S的主从集群 metrics-server v0.6.4 概念简介 在K8s中扩缩容分为两种 ●Node层面:对K8s物理节点扩容和缩容,根据业务规模实现物理节点自动扩…

数字媒体技术基础:色度子采样(4:4:4、4:2:2 、4:2:0)

在数字视频处理中,色度子采样 Chroma Subsampling可以用于压缩视频文件的大小,同时在大多数情况下保持较高的视觉质量,它的原理基于人类视觉系统对亮度 Luminance比对色度 Chrominance更加敏感这一特点。 一、 采样格式的表示方法 色度子采样…

一个技巧实现在SharePoint中使用Copilot

前几天写了在onedrive中使用copilot对单个文件进行提问汇总分析与对多个文件进行比较汇总提问等: Copilot重磅更新!OneDrive全新功能炸裂 很多小伙伴表示特别受用。 于是他们在纷纷尝试了一段时间后,开始把目光转向SharePoint和teams文件&a…

tkinter库的应用小示例:文本编辑器

tkinter库的应用小示例:文本编辑器 要 求: 创建一个文本编辑器,功能包括,创建、打开、编辑、保存文件。一个Button小组件,命名为btn_open,用于打开要编辑的文件,一个Button小组件,命名为btn_s…

Dockerfile 详解

Dockerfile是自定义Docker镜像的一套规则,由多条指令构成,每条指令都会对应于Docker镜像中的每一层,因为Docker是分层存储的。以下是Dockerfile中各个参数的详解及演示解析: 1. FROM 功能:指定待扩展的父级镜像&#…

JavaScript 访问者模式:打造高扩展性的对象结构

一. 前言 在面向对象编程中,访问者模式(Visitor Pattern)是一种行为设计模式,它允许我们向现有的类结构添加新的操作,而无需修改这些类。这对于需要对类层次结构中的元素进行复杂算法处理的场景非常有用。 本文将详细…

【硬件模块】HC-08蓝牙模块

蓝牙模块型号 HC-08蓝牙模块实物图 HC-08蓝牙模块引脚介绍 STATE:状态输出引脚。未连接时,则为低电平。连接成功时,则为高电平。可以在程序中作指示引脚使用; RXD:串口接收引脚。接单片机的 TX 引脚(如…

多线程(三):线程等待获取线程引用线程休眠线程状态

目录 1、等待一个线程:join 1.1 join() 1.2 join(long millis)——"超时时间" 1.3 join(long millis,int nanos) 2、获取当前线程的引用:currentThread 3、休眠当前进程:sleep 3.1 实际休眠时间 3.2 sleep的特殊…