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

Linux:【1】Linux中的文件权限概念和相关命令

Linux:【1】Linux中的文件权限概念和相关命令

  • 1、什么是文件权限?
    • 1.1、文件权限的表示方式
  • 2、理解文件权限
    • 2.1、用户权限
    • 2.2、组权限
    • 2.3、其他权限
  • 3、设置文件权限
    • 3.1、chmod 命令
    • 3.2、权限符号表示法
    • 3.3、权限数字表示法
  • 4、查看文件权限
    • 4.1、ls 命令
    • 4.2、stat 命令
  • 5、更改文件所有者和所属组
    • 5.1、chown 命令
    • 5.2、chgrp 命令
  • 6、特殊权限
    • 6.1、粘着位(Sticky Bit)
    • 6.2、设置用户或组的默认权限
  • 7、结论

1、什么是文件权限?

在 Linux 中,每个文件和目录都有相应的权限设置,用于确定哪些用户或组可以对其进行访问、读取、写入或执行操作。文件权限定义了对文件的访问级别,确保只有经过授权的用户才能对文件进行操作,从而提高系统的安全性。

1.1、文件权限的表示方式

在 Linux 中,文件权限用一串字符来表示,共有 10 个字符,可以分为四个部分:文件类型、用户权限、组权限和其他权限。

文件权限的表示方式如下:

- rwxrwxrwx

其中,每个字符的含义如下:

  • 第一个字符表示文件类型。常见的文件类型包括 -(普通文件)和 d(目录)。
  • 后面的三个字符表示用户权限,即文件所有者对文件的权限。
  • 接下来的三个字符表示组权限,即文件所属组的用户对文件的权限。
  • 最后的三个字符表示其他权限,即其他用户对文件的权限。

每个权限字符可以是以下四个字符之一:

  • r(读取):允许读取文件内容、查看目录内容。
  • w(写入):允许修改文件内容、在该目录中创建、删除文件。
  • x(执行):对于文件,允许执行文件;对于目录,允许进入该目录。
  • -(无权限):表示没有相应的权限。

2、理解文件权限

文件权限可以分为三个部分:用户权限、组权限和其他权限。下面将对每个部分进行详细说明。

2.1、用户权限

用户权限指的是文件的所有者对文件的权限。文件的所有者可以是系统中的任何用户。以下是用户权限的字符表示:

  • r(读取):允许所有者读取文件内容或查看目录内容。
  • w(写入):允许所有者修改文件内容或在目录中创建、删除文件。
  • x(执行):对于文件,允许所有者执行文件;对于目录,允许所有者进入该目录。
  • -(无权限):表示没有相应的权限。

2.2、组权限

组权限指的是文件所属组中的用户对文件的权限。每个文件都会关联一个所属组。以下是组权限的字符表示:

  • r(读取):允许组成员读取文件内容或查看目录内容。
  • w(写入):允许组成员修改文件内容或在目录中创建、删除文件。
  • x(执行):对于文件,允许组成员执行文件;对于目录,允许组成员进入该目录。
  • -(无权限):表示没有相应的权限。

2.3、其他权限

其他权限指的是不属于文件所有者和所属组的用户对文件的权限。以下是其他权限的字符表示:

  • r(读取):允许其他用户读取文件内容或查看目录内容。
  • w(写入):允许其他用户修改文件内容或在目录中创建、删除文件。
  • x(执行):对于文件,允许其他用户执行文件;对于目录,允许其他用户进入该目录。
  • -(无权限):表示没有相应的权限。

3、设置文件权限

要设置文件权限,可以使用 chmod 命令。chmod 命令允许用户更改文件的权限设置。用户可以通过两种方式来指定权限设置:权限符号表示法和权限数字表示法。

3.1、chmod 命令

chmod 命令的基本语法如下:

chmod [选项] 权限 文件

其中,权限可以使用权限符号表示法或权限数字表示法。

3.2、权限符号表示法

权限符号表示法使用符号来指定权限设置。以下是常用的权限符号表示法:

  • +:添加权限。
  • -:移除权限。
  • =:设置权限。

使用权限符号表示法时,可以将符号与权限字符组合使用。例如,要为文件所有者添加写入权限,可以运行以下命令:

chmod u+w 文件名

这将为文件所有者添加写入权限。

可以使用以下符号来表示不同的权限:

  • u:文件所有者。
  • g:文件所属组。
  • o:其他用户。
  • a:所有用户(包括所有者、所属组和其他用户)。
    例如,要为文件所有者和文件所属组添加读取和写入权限,可以运行以下命令:
chmod ug+rw 文件名

这将为文件所有者和文件所属组添加读取和写入权限。

3.3、权限数字表示法

权限数字表示法使用数字来表示权限设置。每个权限字符都被赋予一个特定的数字值:

  • r:4
  • w:2
  • x:1
  • -:0

要设置文件权限,可以将这些数字相加。例如,要为文件所有者设置读取和写入权限,可以运行以下命令:

chmod 6 文件名

这将为文件所有者设置读取和写入权限(4+2=6)。

4、查看文件权限

要查看文件的权限设置,可以使用 ls 命令或 stat 命令。

4.1、ls 命令

ls 命令可以列出文件和目录的详细信息,包括文件权限。要查看文件权限,可以运行以下命令:

ls -l 文件名

这将显示文件的详细信息,包括文件权限。

4.2、stat 命令

stat 命令可以显示文件的详细信息,包括文件权限。要查看文件权限,可以运行以下命令:

stat 文件名

这将显示文件的详细信息,包括文件权限。

5、更改文件所有者和所属组

除了设置文件权限,还可以更改文件的所有者和所属组。

5.1、chown 命令

chown 命令用于更改文件的所有者。要更改文件的所有者,可以运行以下命令:

chown 新所有者 文件名

其中,新所有者可以是用户或用户组。

5.2、chgrp 命令

chgrp 命令用于更改文件的所属组。要更改文件的所属组,可以运行以下命令:

chgrp 新所属组 文件名

其中,新所属组可以是用户组。

6、特殊权限

除了常规的文件权限,Linux 还支持一些特殊权限设置,用于特定的用途。

6.1、粘着位(Sticky Bit)

粘着位是一种特殊权限,适用于目录。当目录的粘着位被设置时,只有目录的所有者和文件的所有者才能删除或重命名目录中的文件。

要设置目录的粘着位,可以运行以下命令:

chmod +t 目录

6.2、设置用户或组的默认权限

在 Linux 中,可以为用户或组设置默认权限,以确保新创建的文件或目录具有特定的权限。

要为用户设置默认权限,可以编辑用户的配置文件 .bashrc 或 .bash_profile,并添加以下行:

umask 权限掩码

其中,权限掩码是一个三位八进制数,用于设置默认权限。例如,要为用户设置默认权限为 644,可以使用权限掩码 022,将以下行添加到用户的配置文件中:

umask 022

同样地,要为组设置默认权限,可以编辑 /etc/profile 文件,并添加以下行:

umask 权限掩码

在这种情况下,所有属于该组的用户将具有相同的默认权限。

7、结论

Linux 文件权限是保护文件和目录安全的重要机制。通过正确设置文件权限,我们可以限制对文件的访问、读取、写入或执行操作。本文详细介绍了文件权限的表示方式,包括用户权限、组权限和其他权限。我们还学习了如何设置文件权限,使用 chmod 命令以及权限符号表示法和权限数字表示法。此外,我们了解了如何查看文件权限,使用 ls 命令和 stat 命令。还介绍了如何更改文件的所有者和所属组,使用 chown 命令和 chgrp 命令。最后,我们还了解了特殊权限,如粘着位和默认权限设置。

掌握文件权限的概念和相关命令对于管理和保护 Linux 系统中的文件和目录至关重要。正确设置文件权限可以确保系统的安全性和稳定性。

相关文章:

Linux:【1】Linux中的文件权限概念和相关命令

Linux:【1】Linux中的文件权限概念和相关命令 1、什么是文件权限?1.1、文件权限的表示方式 2、理解文件权限2.1、用户权限2.2、组权限2.3、其他权限 3、设置文件权限3.1、chmod 命令3.2、权限符号表示法3.3、权限数字表示法 4、查看文件权限4.1、ls 命令…...

JS实用小计

1.如何创建一个数组大小为100,每个值都为0的数组 // 方法一: Array(100).fill(0);// 方法二: // 注: 如果直接使用 map,会出现稀疏数组 Array.from(Array(100), (x) > 0);// 方法二变体: Array.from({ length: 100 }, (x) > 0); 2.如何逆序一个字…...

Android---Bitmap详解

每一个 Android App 中都会使用到 Bitmap,它也是程序中内存消耗的大户,当 Bitmap 使用内存超过可用空间,则会报 OOM。 Bitmap 占用内存分析 Bitmap 用来描述一张图片的长、宽、颜色等信息,可用使用 BitmapFactory 来将某一路径下…...

设计高信度和效度的问卷:关键要点与技巧

设计调查问卷是任何研究过程中至关重要的一部分,无论是出于学术目的还是商业目的。调查是用于收集数据的常用工具,它们可以为消费者行为、意见、客户满意度和其他重要因素提供有价值的见解。然而,调查的可靠性和有效性对于确保收集的数据准确…...

从工厂到社会:探索如何应用设计模式工厂模式

文章目录 🌟 将设计模式工厂模式运用到社会当中🍊 工厂模式在社会中的应用🎉 工厂🎉 餐厅🎉 运输 🍊 工厂模式的优势🎉 代码简洁🎉 扩展性强🎉 便于维护和管理 &#x1f…...

slice()和splice()用法

前言: slice()和splice()都是JavaScript中数组的方法,但是它们的用法有所不同。接下来让我们详细分析一下他们的不同之处。 slice(): slice()方法返回一个数组的一部分,不会改变原始数组,而是返回一个新数组。 语法…...

基于windows10的pytorch环境部署及yolov8的安装及测试

第一章 pytorch环境部署留念 第一步:下载安装anaconda 官网地址 (也可以到清华大学开源软件镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/) 我安装的是下面这个,一通下一步就完事儿。 第二步…...

面试算法40:矩阵中的最大矩形

题目 请在一个由0、1组成的矩阵中找出最大的只包含1的矩形并输出它的面积。例如,在图6.6的矩阵中,最大的只包含1的矩阵如阴影部分所示,它的面积是6。 分析 直方图是由排列在同一基线上的相邻柱子组成的图形。由于题目要求矩形中只包含数字…...

was下log4j设置日志不输出问题

was下log4j设置日志不输出问题 WAS 也是用的 commons-logging 日志框架 commons-logging 确定 LogFactory 实现的顺序是 从应用的 META-INF/services/org.apache.commons.logging.LogFactory 中获得 LogFactory 实现从系统环境中获得 org.apache.commons.logging.LogFactory…...

小米14系列, OPPO Find N3安装谷歌服务框架,安装Play商店,Google

10月26号小米发布了新款手机小米14,那么很多大家需求问是否支持谷歌服务框架,是否支持Google Play商店gms。因为毕竟小米公司现在安装的系统是HyperOS澎湃OS。但是我拿到手机之后会发现还是开机初始界面会显示power by android,证明这一点他还是支持安装谷歌,包括最近一段时间发…...

Servlet 与Spring对比!

前言: Spring相关的框架知识,算是目前公司在用的前沿知识了,很重要!! 那么以Spring为基础的框架有几个? 以Spring为基础的框架包括若干模块,其中主要的有Spring Framework、Spring Boot、Spring…...

粤嵌实训医疗项目--day03(Vue + SpringBoot)

往期回顾 粤嵌实训医疗项目day02(Vue SpringBoot)-CSDN博客 粤嵌实训医疗项目--day01(VueSpringBoot)-CSDN博客 目录 一、SpringBoot AOP的使用 二、用户模块-注册功能(文件上传) 三、用户模块-注册实现…...

spark3.3.x处理excel数据

环境: spark3.3.x scala2.12.x 引用: spark-shell --jars spark-excel_2.12-3.3.1_0.18.5.jar 或项目里配置pom.xml <!-- https://mvnrepository.com/artifact/com.crealytics/spark-excel --> <dependency><groupId>com.crealytics</groupId><art…...

哪一个更好?Spring boot还是Node.js

前言 本篇文章有些与众不同&#xff0c;由于我自己手头有些关于这个主题的个人经验&#xff0c;受其启发写出此文。虽然SpringBoot和Node.js服务于很不一样的场景&#xff0c;但是这两个框架共性惊人。其实每种语言都有不计其数的框架&#xff0c;但仅仅一部分是真正卓越的。如…...

AD7321代码SPI接口模数转换连接DAC0832输出verilog

名称&#xff1a;AD7321代码12位ADC&#xff0c;SPI接口模数转换连接DAC0832输出 软件&#xff1a;QuartusII 语言&#xff1a;VHDL 代码功能&#xff1a; 使用VHDL语言编写代码&#xff0c;实现AD7321的控制&#xff0c;将模拟信号转换为数字信号&#xff0c;再经过处理后…...

JavaScript_Pig Game切换当前玩家

const current0El document.getElementById(current--0); const current1El document.getElementById(current--1); if (dice ! 1) {currentScore dice;current0El.textContent currentScore;} else {} });这是我们上个文章写的代码&#xff0c;这个代码明显是有问题的&…...

EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明

一、准备阶段 POE交换机欧姆龙PLC 支持EtherNet Ip协议CX-Programmer 9.5配置软件 二、配置读卡器 1、打开软件 2、选择网卡&#xff0c;如果多网卡的电脑请注意对应所接的网卡&#xff0c;网卡名一般为“Network adapter Realtek PCIe GBE Family” 3、点击“选择网卡”&…...

UE5简化打包大小

UE5.3默认空项目带初学者包的打包后1G多 简化思路&#xff1a; 1.不打包初学者包&#xff08;或者创建时不包括初学者包&#xff0c;跳过第一条&#xff09; 导航&#xff1a;ProjectSettings->Project->Packaging->Packaging->Advanced->List of maps to incl…...

ThinkPHP8学习笔记

ThinkPHP8官方文档地址&#xff1a;ThinkPHP官方手册 一、composer换源 1、查看 composer 配置的命令composer config -g -l 2、禁用默认源镜像命令composer config -g secure-http false 3、修改为阿里云镜像源composer config -g repo.packagist composer https://mirror…...

NSSCTF做题第9页(2)

[SWPUCTF 2022 新生赛]ez_1zpop <?php error_reporting(0); class dxg { function fmm() { return "nonono"; } } class lt { public $impohi; public $md51weclome; public $md52to NSS; function __construct() { $this-&…...

Rust笔记【1】

元组和解构语法 let tup : (i32, f64, u8) (666, 2.0, 1);let tup (666, 2.0, 1); let (x, y, z) tup;let x tup.0; let y tup.1; let z tup.2;数组类型 数组定义是方括号&#xff1a;[ ] 元组定义是小圆括号&#xff1a;( ) 结构体定义是大括号&#xff1a;{ }&#xf…...

代码随想录训练营day3:链表part1

理论 链表的增删操作时间复杂度O(1),查询时间复杂度O(n),因为要从头结点开始。使用场景和数据完全相反 链表的储存地址是不连续的。也和数组不同。 移除链表元素 利用虚拟头结点可以同意操作。不然删除头结点需要额外写。 记得返回的是虚拟头结点的next而不是虚拟头结点retu…...

Bootstrap的咖啡网站实例代码阅读笔记

目录 01-index.html的完整代码02-图片可以通过类 rounded-circle 设置为圆形显示03-<li class"nav-item mt-1 a">中&#xff0c;类mt-1是什么意思&#xff1f;类a又是什么意思&#xff1f;04-href"javascript:void(0);"是什么意思&#xff1f;05-类f…...

2021年06月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试&#xff08;1~6级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 执行下列代码后&#xff0c;运行结果是&#xff1f; seq[hello,good,morning] s*.join(seq) print(s)A: hello*good*m…...

FileWriter文件字符输出流

一.概念 以内存为基准&#xff0c;把内存中的数据以字符形式写出到文件中 二.构造器 public FileWriter(Filefile) 创建字节输出流管道与源文件对象接通 public FileWriter(String filepath) 创建字节输出流管道与源文件路径接通 public Filewriter(File file,boolean append) …...

Vue的八个基础命令及作用

1.v-text 作用:获取data数据, 设置标签的内容&#xff0c;以纯文本进行显示v-text 会覆盖 标签中的内容&#xff0c;如果想要拼接数据&#xff0c;可以直接在v-text中拼接如果拼接的是数字&#xff1a;直接使用 “”如果拼接的是字符串&#xff0c;需要使用与外部不同的引号进…...

Log日志详解分析

目录 1、log日志的用途2、log日志级别3、什么时候需要输出日志1. 系统启动参数、环境变量2. 异常捕获处3. 函数获得期望之外的结果时4. 关键操作 4、日志输出的内容5、 注意事项1. 日志信息不明确2. 特殊异常处理3. 日志输出顺序4. 临时调试日志 6、xml文件配置7、linux下查看日…...

【API篇】九、Flink的水位线

文章目录 1、Flink时间语义2、事件时间和窗口3、水位线4、水位线和窗口的工作原理 1、Flink时间语义 事件时间处理时间 举个例子就是&#xff0c;一条数据在23:59:59产生&#xff0c;在00:00:01被处理&#xff0c;前者为事件时间&#xff0c;后者为处理时间。 从Flink1.12版本…...

#经典论文 异质山坡的物理模型 2 有效导水率

Binley, A., Beven, K., & Elgy, J. (1989). A physically based model of heterogeneous hillslopes: 2. Effective hydraulic conductivities. Water Resources Research, 25(6), 1227–1233. https://doi.org/10.1029/WR025i006p01227 这篇论文指出&#xff0c; 每个输…...

Java面试题-Redis-第一天(Redis简单介绍)

目录 一、Redis是什么&#xff1f;优缺点&#xff1f; 二、Redis为什么这么快&#xff1f; 三、Redis相较于Memcached有哪些优势&#xff1f; 四、为什么使用Redis做缓存&#xff1f; 五、为什么要用Redis而不用map/guava做缓存&#xff1f; 六、Redis的常用场景有哪些&am…...