进阶学习------linux运维读写执行权限

news2024/11/15 9:05:29

进阶学习------linux运维读写执行权限

在这里插入图片描述

在UNIX和类UNIX操作系统中,文件权限是通过一组特定的数字来表示的,这些数字分为三组,分别对应于用户(文件所有者)、组和其他用户的权限。每组权限由三个二进制位表示,分别对应读(read)、写(write)和执行(execute)权限。
以下是每个权限的数字表示:

  • 读权限(r):二进制 100,八进制 4
  • 写权限(w):二进制 010,八进制 2
  • 执行权限(x):二进制 001,八进制 1
    因此,权限数字是通过将读、写和执行权限的二进制表示相加得到的。以下是一些常见的权限组合及其对应的八进制和符号表示:
    | 二进制 | 八进制 | 符号表示 | 描述 |
    |--------|--------|----------------|----------------------------|
    | 000 | 0 | — | 无权限 |
    | 001 | 1 | --x | 只有执行权限 |
    | 010 | 2 | -w- | 只有写权限 |
    | 011 | 3 | -wx | 写和执行权限 |
    | 100 | 4 | r-- | 只有读权限 |
    | 101 | 5 | r-x | 读和执行权限 |
    | 110 | 6 | rw- | 读和写权限 |
    | 111 | 7 | rwx | 读、写和执行权限 |
    例如,如果文件权限是 0644,则表示:
  • 用户(文件所有者)有读(4)和写(2)权限,总共是 4 + 2 = 6
  • 组和其他用户只有读权限(4)。
    在符号表示中,0644 对应的权限是 -rw-r--r--,表示用户可以读写文件,而组和其他用户只能读取文件。
    在这里插入图片描述

权限相关知识点

文件权限是UNIX和类UNIX操作系统中一个非常重要的概念,它用于控制文件和目录的访问权限。以下是关于文件权限的详细知识点:

权限的组成

文件权限由三组组成,每组包含读(r)、写(w)和执行(x)权限:

  1. 用户权限(文件所有者):指文件所有者可以执行的操作。
  2. 组权限:指文件所属组成员可以执行的操作。
  3. 其他用户权限:指不属于文件所有者或文件所属组的用户可以执行的操作。

权限表示

  • 二进制表示:每组权限用三个二进制位表示,分别为 rwx
  • 八进制表示:每组权限用一个八进制数字表示,分别为 rwx 对应的八进制数字(4, 2, 1),因此每组权限的八进制表示是这三个数字的和。

权限组合

  • 无权限:所有位都是 0,表示 ---
  • 执行权限:只有最后一个位是 1,表示 --xr--
  • 读写权限:前两个位都是 1,表示 rw---w
  • 读写执行权限:所有位都是 1,表示 rwxr--

权限位掩码

  • 读权限位掩码000(二进制)或 0(八进制)。
  • 写权限位掩码001(二进制)或 2(八进制)。
  • 执行权限位掩码010(二进制)或 1(八进制)。

权限改变

  • 改变用户权限:使用 chmod 命令,例如 chmod u+w file 给文件所有者添加写权限。
  • 改变组权限:使用 chmod 命令,例如 chmod g+r file 给文件所属组添加读权限。
  • 改变其他用户权限:使用 chmod 命令,例如 chmod o+x file 给其他用户添加执行权限。

权限示例

  • 755rwxr-xr-x,表示文件所有者具有读、写和执行权限,组和其他用户只有执行和读权限。
  • 644rw-r--r--,表示文件所有者具有读和写权限,组和其他用户只有读权限。

目录权限

目录权限与文件权限类似,但执行权限的含义略有不同。在目录中,执行权限表示用户是否有权进入该目录。例如,目录权限 755 表示文件所有者可以读、写和进入目录,组和其他用户可以进入目录。

权限继承

当创建新文件或目录时,它们的权限通常是基于父目录的权限。例如,如果父目录的权限是 755,新文件或目录的默认权限将是 644
了解文件权限对于安全地使用UNIX和类UNIX系统至关重要,因为它可以帮助防止未授权的访问和保护数据的安全。

在这里插入图片描述

如何改变文件所有者的权限,而不影响其他人?

在Linux中,你可以使用 chown 命令来改变文件的所有者,同时使用 chmod 命令来改变文件权限。如果你只想改变文件所有者的权限,而不影响其他人,你可以按照以下步骤操作:

  1. 使用 chown 命令改变文件的所有者。这将只改变所有者的权限,而不会影响其他用户的权限。
chown username:username filename

这里的 username 是你想要将文件所有者更改为的用户,而 filename 是你要更改所有者的文件。
2. 使用 chmod 命令来改变文件所有者的权限。你可以使用符号表示法或数字表示法来指定权限。

chmod u+w filename

或者使用数字表示法:

chmod 600 filename

这里,600 是一个八进制数字,它表示文件所有者具有读写权限(rw-),而组和其他用户没有权限(---)。
如果你只想改变文件所有者的权限,你可以忽略 chmod 命令中的 u 标志,只指定权限位掩码:

chmod 600 filename

这将直接改变文件所有者的权限,而不影响其他用户。
请注意,如果你不是文件的所有者,你可能需要具有 sudo 权限才能使用 chown 命令更改文件的所有者。此外,如果你是文件的所有者,你也可以使用 chmod 命令来改变自己的权限,但这通常不是最佳实践,因为这意味着你可以轻易地使自己失去对文件的访问权限。

在这里插入图片描述

如何递归地改变文件夹权限?

在Linux中,如果你想递归地改变文件夹及其所有子文件和子文件夹的权限,你可以使用 chmod 命令的 -R--recursive 选项。这个选项允许你更改指定目录及其所有子目录和文件(如果它们属于你)的权限。
以下是一个示例,展示了如何递归地改变一个文件夹及其所有子文件和子文件夹的权限:

chmod -R 755 folder_name

这里的 755 是一个八进制数字,它表示目录的所有者具有读、写和执行权限(rwx),组和其他用户只有读和执行权限(r-x)。
如果你想要递归地改变文件夹及其所有子文件和子文件夹的所有者,你可以使用 chown 命令:

chown -R username:group folder_name

这里的 usernamegroup 是你想要将文件夹所有者和组更改为的用户和组。
请注意,使用 chown -R 命令时,你需要具有足够的权限来更改文件夹及其所有子文件和子文件夹的所有者。如果你不是文件夹的所有者,你可能需要使用 sudo 来获得必要的权限:

sudo chown -R username:group folder_name

使用 sudo 需要你输入密码,除非你将 chown 命令添加到 sudoers 文件中,以便在不需要密码的情况下运行。

在这里插入图片描述

如何只改变文件的读权限?

在Linux中,如果你想只改变文件的读权限,而不改变写和执行权限,你可以使用 chmod 命令的符号表示法或数字表示法。以下是两种方法:

符号表示法

使用 u 标志来指定用户(文件所有者)的权限,使用 g 标志来指定组用户的权限,使用 o 标志来指定其他用户的权限。

chmod u+r filename

这将为文件所有者添加读权限,而不会改变组和其他用户的权限。

数字表示法

在数字表示法中,每个权限位对应的八进制数字是 4(读权限)、2(写权限)和 1(执行权限)。要只添加读权限,你可以将 r 权限位掩码添加到数字表示法中。

chmod 444 filename

这将为文件所有者、组用户和其他用户都添加读权限,而不会改变写和执行权限。
请注意,如果你是文件的所有者,你可以直接使用 chmod 命令来更改自己的权限。如果你不是文件的所有者,你需要具有足够的权限来更改文件权限。在某些情况下,你可能需要使用 sudo 来获得必要的权限。

在这里插入图片描述

如何查看当前文件的权限设置?

在Linux中,你可以使用 ls -l 命令来查看当前目录下文件的详细权限设置。这个命令会输出一个长列表,其中包含了文件的权限、所有者、组、文件大小、最后修改日期等信息。
以下是一个示例输出:

total 12
-rw-r--r-- 1 user group 4 2023-04-01 12:00 file1.txt
-rwxr-xr-x 1 user group 12 2023-04-01 12:00 file2.txt

在这个输出中,第一列是一个八进制数字,它表示文件的权限设置。每个数字代表一个用户组(u)、组用户(g)和其他用户(o)的权限。这个八进制数字可以分解为三个部分,每个部分代表一组用户的权限:

  • 第一个数字(从左边数起)代表用户(文件所有者)的权限。
  • 第二个数字代表组用户的权限。
  • 第三个数字代表其他用户的权限。
    每个数字可以分解为三个二进制位,分别代表读(r)、写(w)和执行(x)权限:
  • r 对应二进制 100,八进制 4
  • w 对应二进制 010,八进制 2
  • x 对应二进制 001,八进制 1
    例如,第一个文件 file1.txt 的权限是 -rw-r--r--,这可以分解为:
  • 用户(文件所有者):读(r)和写(w)权限,但没有执行(x)权限。
  • 组用户:读(r)权限,但没有写(w)和执行(x)权限。
  • 其他用户:读(r)权限,但没有写(w)和执行(x)权限。
    第二个文件 file2.txt 的权限是 -rwxr-xr-x,这可以分解为:
  • 用户(文件所有者):读(r)、写(w)和执行(x)权限。
  • 组用户:读(r)和执行(x)权限,但没有写(w)权限。
  • 其他用户:读(r)和执行(x)权限,但没有写(w)权限。
    通过 ls -l 命令,你可以轻松地查看文件的权限设置,并根据需要使用 chmod 命令来更改它们。

在这里插入图片描述

如何查看权限更改是否成功?

在Linux中,你可以使用 ls -l 命令来查看文件的权限设置,然后对比更改前的设置,以确认权限更改是否成功。以下是如何操作的步骤:

  1. 首先,使用 ls -l 命令查看更改前的文件权限设置。
ls -l original_filename

这将显示文件在更改权限前的详细信息,包括权限设置。
2. 接下来,使用 chmod 命令更改文件权限。

chmod new_permissions filename

这里,new_permissions 是你想要设置的新权限,例如 755(八进制数字)或 u+rwx,g+r,o+r(符号表示法)。
3. 再次使用 ls -l 命令查看更改后的文件权限设置。

ls -l new_filename

这将显示文件在更改权限后的详细信息,包括新的权限设置。
通过对比更改前后的权限设置,你可以确认权限更改是否成功。如果更改后的权限设置与预期相符,那么可以认为更改是成功的。如果权限设置与预期不符,你可能需要检查 chmod 命令的语法是否正确,或者文件权限是否受到其他因素(如文件系统权限或文件属性)的影响。

在这里插入图片描述

如何撤销文件的读权限?

在Linux中,如果你想撤销文件的读权限,你可以使用 chmod 命令来修改文件权限。撤销读权限意味着用户将无法读取文件内容,但他们仍然可以执行和写入文件。
以下是撤销文件读权限的步骤:

  1. 使用 chmod 命令撤销读权限。你可以使用符号表示法或数字表示法来指定权限。
    使用符号表示法:
chmod u-r filename

这将从文件所有者的权限中移除读权限,而不会影响其他用户的权限。
使用数字表示法:

chmod 600 filename

这里,600 是一个八进制数字,它表示文件所有者具有读和写权限(rw-),而组和其他用户没有权限(---)。
请注意,如果你是文件的所有者,你可以直接使用 chmod 命令来更改自己的权限。如果你不是文件的所有者,你需要具有足够的权限来更改文件权限。在某些情况下,你可能需要使用 sudo 来获得必要的权限。
撤销读权限后,文件将不再可以被读取,除非你有足够的权限来重新设置读权限。如果你需要撤销所有用户的读权限,你可以使用以下命令:

chmod o-r filename

这将从其他用户的权限中移除读权限,而不会影响文件所有者和组用户的权限。

在这里插入图片描述

能否同时撤销读写权限?

是的,你可以同时撤销文件的读写权限。在Linux中,如果你想要撤销文件的读写权限,你可以使用 chmod 命令。撤销读写权限意味着用户将无法读取文件内容,也无法修改文件内容,但他们仍然可以执行文件(如果文件是可执行的)。
以下是撤销文件读写权限的步骤:

  1. 使用 chmod 命令撤销读写权限。你可以使用符号表示法或数字表示法来指定权限。
    使用符号表示法:
chmod u-rw filename

这将从文件所有者的权限中移除读写权限,而不会影响其他用户的权限。
使用数字表示法:

chmod 400 filename

这里,400 是一个八进制数字,它表示文件所有者只有执行权限(r--),而组和其他用户没有权限(---)。
请注意,如果你是文件的所有者,你可以直接使用 chmod 命令来更改自己的权限。如果你不是文件的所有者,你需要具有足够的权限来更改文件权限。在某些情况下,你可能需要使用 sudo 来获得必要的权限。
撤销读写权限后,文件将不再可以被读取或修改,除非你有足够的权限来重新设置读写权限。如果你需要撤销所有用户的读写权限,你可以使用以下命令:

chmod o-rw filename

这将从其他用户的权限中移除读写权限,而不会影响文件所有者和组用户的权限。

在这里插入图片描述

如何给特定用户设置权限?

在Linux中,你可以使用 chmod 命令来设置特定用户的权限,这通常是通过设置文件的所有者(u)和组(g)权限来实现的。如果你想为特定的用户设置权限,而不是文件的所有者或组用户,这通常需要一些额外的步骤,因为文件权限通常是以所有者和组为基础的。
以下是如何给特定用户设置权限的步骤:

  1. 首先,你需要知道特定用户的用户ID(UID)。这可以通过 id 命令或 whoami 命令(如果你知道用户名)来获取。
id username

或者

whoami
  1. 使用 chown 命令将文件的所有权转移到特定用户。
chown -R username:username filename

这会将文件的所有者和组都设置为特定用户。
3. 如果你还想设置其他用户的权限,你可以使用 chmod 命令来设置。

chmod o+r filename

这将给其他用户添加读权限。
4. 如果你还想设置组用户的权限,你可以使用 chmod 命令来设置。

chmod g+w filename

这将给组用户添加写权限。
请注意,这些命令通常需要具有足够的权限来执行。如果你不是文件的所有者,你可能需要使用 sudo 来获得必要的权限。
此外,如果你只是想给特定用户添加权限,而不是将文件的所有权转移给他,你可以使用 setfacl 命令(如果支持ACLs)或 chmod 命令与 - 标志一起使用。
使用 setfacl 命令(如果支持ACLs):

setfacl -m u:username:rw filename

这将给特定用户添加读写权限。
使用 chmod 命令与 - 标志:

chmod u-rw,g-rw,o+rw filename

这将移除文件所有者和组用户的读写权限,并给其他用户添加读写权限。
请注意,这些方法可能需要根据你的系统配置和文件系统支持来调整。

在这里插入图片描述

如何设置特定组权限?

在Linux中,你可以使用 chmod 命令来设置特定组的权限。这通常是通过设置文件的所有者(u)和组(g)权限来实现的。如果你想为特定的组设置权限,而不是文件的所有者或组用户,你可以按照以下步骤操作:

  1. 首先,你需要知道特定组的组ID(GID)。这可以通过 id 命令或 groups 命令(如果你知道组名)来获取。
id -g username

或者

groups username
  1. 使用 chown 命令将文件的所有权转移到特定组。
chown :groupname filename

这会将文件的所有者设置为组,而文件的所有者用户ID(UID)保持不变。
3. 使用 chmod 命令来设置特定组的权限。

chmod g+rw filename

这将给特定组添加读写权限。
4. 如果你还想设置其他用户的权限,你可以使用 chmod 命令来设置。

chmod o+r filename

这将给其他用户添加读权限。
请注意,这些命令通常需要具有足够的权限来执行。如果你不是文件的所有者,你可能需要使用 sudo 来获得必要的权限。
此外,如果你只是想给特定组添加权限,而不是将文件的所有权转移给该组,你可以使用 setfacl 命令(如果支持ACLs)或 chmod 命令与 - 标志一起使用。
使用 setfacl 命令(如果支持ACLs):

setfacl -m g:groupname:rw filename

这将给特定组添加读写权限。
使用 chmod 命令与 - 标志:

chmod g-rw,o+rw filename

这将移除组用户的读写权限,并给其他用户添加读写权限。
请注意,这些方法可能需要根据你的系统配置和文件系统支持来调整。
在这里插入图片描述

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

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

相关文章

如何进行硬件调试?

硬件调试是硬件系统设计、开发和制造过程中不可或缺的一环,旨在对可能出现的问题进行分析和解决。以下是进行硬件调试的一般步骤和方法: 一、准备阶段 熟悉设计文档:在开始调试之前,需要详细阅读和理解硬件系统的设计文档、原理图…

【探索数据结构与算法】——深入了解双向链表(图文详解)

目录 一、双向链表的基本概念 ​​​ 二、双向链表的结构 三、双向链表的基本操作实现方法 1.双向链表的初始化 2.双向链表的头插 3.双向链表的尾插 6.查找节点 7.在指定位置之前插入节点 8.删除指定位置节点 9.打印链表数据 10.双向链表销毁 四、完整代码实现 …

html+css+js网页设计 星享咖啡6个页面(带js) ui还原度90%

htmlcssjs网页设计 星享咖啡6个页面(带js) ui还原度90% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等…

一个拳打Claude3.5 Artifacts 脚踢软件外包公司的国产AI神器

Claude3.5的Artifacts功能想必大家都有所耳闻吧。 不了解的小伙伴也没关系,看下面这个视频。 更详细的介绍可以看之前我写的文章 关于Claude3.5-Sonnet引以为傲的功能,在半年前就被某国产平台无情碾压的那档事!_claude 3.5 sonnet 国内能用…

20240808在飞凌OK3588-C开发板上使用HDMI OUT接口的SONY索尼8530机芯的YUV模式录像

20240808在飞凌OK3588-C开发板上使用HDMI OUT接口的SONY索尼8530机芯的YUV模式录像 2024/8/8 15:26 v4l2-ctl --list-devices v4l2-ctl --list-formats-ext -d /dev/video8 v4l2-ctl -V -d /dev/video8 根据规格书《FCB-CR8550_8530_TM_20190730.pdf》,很容易知道8…

【秋招突围】2024届校招-拼多多笔试题-第一套

🍭 大家好这里是 大厂笔试突围,一起备战秋招笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🌻 听说本周PDD的笔…

elasticSearch和ik分词插件安装和使用

elasticSearch 特点:分布式搜索和分析引擎,可以用http以json的方式进行数据索引。 由来:ES全称Elastic Stack(ELK Stack),是由三个产品elasticSearch,logstack(数据收集&#xff0…

【新手必备】5分钟学会Transformer算法的核心要点

Transformer 是近年来在自然语言处理(NLP)领域取得显著成果的一种深度学习模型,最初由 Vaswani et al. 在 2017 年提出。 与传统的序列模型(如 RNN 和 LSTM)相比,Transformer 的主要优势在于其能够更好地处…

零基础5分钟上手亚马逊云科技AWS核心云架构知识-用S3桶托管静态网页

简介: 小李哥从今天开始将开启全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,让大家0基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构。 我将每天介绍一个基于亚马逊云…

go之protobuf和grpc

一、Protobuf Protobuf是接口规范的描述语言,可以通过工具生成代码,将结构化数据序列化。 二、grpc gRPC 是 Google 公司基于 Protobuf 开发的跨语言的开源 RPC 框架。 三、使用教程 3.1 student.proto syntax "proto3"; import "go…

软件测试---接口测试

一、接口及接口测试概念 (1)接口的类型 (2)接口测试的概念 (3)接口测试的原理 (4)接口测试的特点 (5)接口测试的实现方式 二、HTTP协议 (1&#…

【人工智能】AI时代程序员----是缔造AI程序员,还是AI缔造程序员?

是缔造AI程序员,还是AI缔造程序员? 前言 随着AIGC(如ChatGPT、MidJourney、Claude等)大语言模型的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。 ​ ChatGPT ​ Midjourney ​ Claude …

【免费测试】人脸身份证比对接口如何用Java对接?(一)

一、什么是人脸身份证比对? 人脸身份证比对又称人证比对,实人比对,人像比对,输入姓名、身份证号码和头像照片,与公安库身份证头像进行权威比对,返回分值作为判断依据。 二、人脸身份证比对接口适用哪些场…

Processing之函数

一.函数基础 函数是processing程序中最基本的结构。经常使用的函数有draw()、line()、size()等。计算机每次运行程序的一行。当一个函数运行时,计算机跳到函数定义的位置,运行到哪里的代码,然后在跳回它离开的位置。 1.1掷骰子 案例代码如图…

离线安装windows应用商店中的应用

以windows notepad为例 1.百度windows应用商店,notepad 进入https://apps.microsoft.com/detail/9msmlrh6lzf3?hlen-aq&glAQ 是一个名为windows notepad的应用,复制地址栏里面detail后面的字符9msmlrh6lzf3 有很多notepad类似的应用,wi…

2024年新能源汽车充电桩建设驶入快车道

2024年新能源汽车市场大爆发:渗透率飙升,保有量创新高,充电桩建设驶入快车道 随着2024年新能源汽车市场的持续繁荣,一场前所未有的绿色革命正在全球范围内加速推进。这一年,新能源汽车的渗透率不仅实现了质的飞跃&…

CSS 实现两边固定宽,中间自适应

0. **Flexbox 实现**&#xff1a; css复制代码.container { display: flex; } ​ .fixed { width: 200px; /* 两边固定宽度 */ } ​ .flexible { flex: 1; /* 中间自适应 */ } html复制代码<div class…

指纹失效,忘记iPhone屏幕解锁密码怎么应对?

为保证手机的安全及隐私&#xff0c;我们会给手机设置屏幕锁屏密码&#xff0c;通过输入设置密码来解锁手机屏幕锁&#xff0c;但为了给大家提供快速便捷的解锁方式&#xff0c;苹果公司提供了指纹解锁&#xff0c;不仅解锁更便捷了还极大地增强了设备的安全性。但有时我们手指…

springboot在线图库网站-计算机毕业设计源码38597

基于SpringbootVue的在线图库网站的设计与实现 摘 要 本文基于Spring Boot作为后端框架&#xff0c;Vue作为前端框架&#xff0c;设计并实现了一个功能丰富的在线图库网站。该网站提供了注册、登录、普通用户功能和管理员功能等一系列功能&#xff0c;为用户提供了方便的浏览摄…

[论文笔记]BM25S:Python打造超越RANK-BM25的实现

引言 今天带来一篇BM25变种的论文笔记&#xff0c;不要低估BM25&#xff0c;在RAG中检索中通常都会引入BM25检索&#xff0c;然后配合嵌入模型进行混合检索。 BM25S: Orders of magnitude faster lexical search via eager sparse scoring&#xff0c;题目翻译过来是&#xf…