首页 > 系统相关 >Linux 文件权限

Linux 文件权限

时间:2024-11-11 10:46:40浏览次数:3  
标签:文件 用户 目录 Linux 权限 所有者

优质博文:IT-BLOG-CN

文件权限是 Linux 系统使用的安全模型的核心。它们决定了谁可以访问系统上的文件和目录以及如何访问。本文概述了 Linux 文件权限、它们的工作原理以及如何更改它们。

一、如何查看Linux文件权限?

该ls命令及其-l(用于长列表)选项将向您显示有关 Linux 文件的元数据,包括在文件上设置的权限。

$ ls -l

drwxr-xr-x. 4 root root    68 Jun 13 20:25 tuned
-rw-r--r--. 1 root root  4017 Feb 24  2022 vimrc

在此示例中,您会看到两个不同的列表。输出的第一个字段ls -l是一组元数据,其中包括每个文件的权限。以下是vimrc列表的组成部分:
【1】文件类型:-
【2】权限设置:rw-r–r–
【3】扩展属性:点(.)
【4】用户所有者:root
【5】管理员:root

“文件类型”和“扩展属性”字段超出了本文的讨论范围,但在上面的特色输出中,该vimrc文件是普通文件,即文件类型-(即没有特殊类型)。

列表tuned针对的是d或目录类型的文件。还有其他文件类型,但这两种是最常见的。可用属性取决于文件存储的文件系统格式。对于Red Hat Enterprise Linux 7、8 和 9,默认文件系统格式为 XFS。

二、如何读取文件权限?

本文介绍文件的权限设置。列表中有趣的权限vimrc包括:

rw-r--r–

这个字符串实际上是三组不同权限的表达:
【1】rw-
【2】r–
【3】r-
第一组权限适用于文件的所有者。第二组权限适用于拥有该文件的用户组。第三组权限通常称为“其他”。所有 Linux 文件都属于所有者和组。

当权限和用户用字母表示时,这称为符号模式。对于用户,u代表用户所有者、g组所有者和o其他人。对于权限,r代表读取、w写入和x执行。

当系统查看文件的权限以确定在您与文件交互时向您提供什么信息时,它会进行一系列检查:
【1】它首先检查您是否是拥有该文件的用户。如果是,则授予您用户所有者的权限,并且不会完成进一步的检查。
【2】如果您不是文件所有者,则接下来会验证您的群组成员身份,以查看您是否属于与文件群组所有者匹配的群组。如果是,则您属于群组所有者权限字段,不会进行进一步检查。
【3】当与文件交互的帐户既不是用户所有者,也不属于拥有该文件的组时,将应用“其他”权限。或者,换句话说,这三个字段是互斥的:您不能被覆盖到文件权限设置的多个字段中。

权限不仅仅指可以与文件交互的不同类型的人。每个用户都会获得一个包含三种基本权限类型的表达式。在上面的示例中,文件所有者被赋予了以下权限:

rw-

表达式中的每个字符表示是否授予特定权限。在上面的例子中,已授予文件读取 ( r) 权限和写入 ( ) 权限。但是,未授予执行权限 ( ),这就是表达式中有一个符号的原因。此字段中的权限已禁用。wx-

考虑此示例中的组所有者的权限:

r--

r向组成员授予读取( )权限,但是写入和执行均已被禁用。

三、什么是八进制值?

当 Linux 文件权限用数字表示时,这称为数字模式。在数字模式下,三位数值表示特定文件权限(例如 744)。这些称为八进制值。第一位表示所有者权限,第二位表示组权限,第三位表示其他用户权限。每个权限都分配有一个数值:
【1】r(读):4
【2】w(写入):2
【3】x(执行):1
权限值744中,第一位对应用户,第二位对应组,第三位对应其他,将各个用户分类的值相加,就可以得到文件的权限。

例如,某个文件可能对其所有者具有读取、写入和执行权限,而对所有其他用户则只有读取权限。如下所示:
【1】所有者:rwx = 4+2+1 = 7
【2】组:r-- = 4+0+0 = 4
【3】其他:r-- = 4+0+0 = 4
结果为三位数 744。

四、Linux 文件权限实际上起什么作用?

我已经讨论了如何查看文件权限、权限适用于哪些人以及如何查看哪些权限已启用或已禁用。但这些权限在实践中究竟起什么作用呢?

读(r)

读取权限用于访问文件的内容。您可以使用诸如cat或 之less类的工具来查看文件内容。您也可以使用诸如 Vi 或 之view类的文本编辑器来查看文件内容。复制文件需要读取权限,因为您需要访问文件内容才能复制文件。

写 (w)

写权限允许您修改或更改文件的内容。写权限还允许您使用 shell 中的重定向或附加操作符(>或>>)来更改文件的内容。如果没有写权限,则不允许更改文件的内容。

执行 (x)

执行权限允许您执行文件的内容。通常,可执行文件是命令或编译的二进制应用程序之类的东西。但是,执行权限还允许某人运行 Bash shell 脚本、Python 程序和各种解释语言。

还有其他方法可以在没有执行权限的情况下执行文件内容。例如,您可以使用具有执行权限的解释器来读取文件,并向解释器提供执行指令。一个例子是调用 Bash shell 脚本:

$ bash script.sh

正在运行的可执行文件是bash。该script.sh文件由 Bash 解释器读取,并执行其命令。本文中的内容是通用的,但在 Linux 中,通常还有其他方法来完成任务。

五、目录权限如何工作?

目录文件类型用 表示d。从概念上讲,权限的操作方式相同,但目录对这些操作的解释不同。

读(r)

与常规文件一样,此权限允许您读取目录的内容。但是,这意味着您可以查看目录中存储的内容(或文件)。此权限是命令等操作所必需的ls。

写 (w)

与常规文件一样,这允许某人修改目录的内容。更改目录内容时,您要么向目录添加文件,要么从目录中删除文件。因此,您必须对目录具有写入权限才能从目录中移动 ( mv) 或删除 ( rm) 文件。您还需要写入权限才能创建新文件(使用touch或文件重定向运算符)或将cp文件复制 ( ) 到目录中。

执行 (x)

与文件相比,目录的权限有很大不同。本质上,您可以将其视为提供对目录的访问权限。拥有目录的执行权限不仅允许您查看目录中文件的扩展信息(ls -l例如,使用),还允许您更改工作目录(使用cd)或在访问下级子目录时经过此目录。

缺少目录的执行权限会以有趣的方式限制其他权限。例如,如果您无法访问目录的元数据来存储新文件的信息,您如何将新文件添加到目录中(通过利用写入权限)?您无法做到。正是出于这个原因,目录类型文件通常向一个或多个用户所有者、组所有者或其他人提供执行权限。

六、如何修改Linux文件权限?

chmod您可以使用命令(代表“更改模式”)修改文件和目录权限。要在数字模式下更改文件权限,请chmod在文件名旁边输入所需的八进制值(例如 744)。要在符号模式下更改文件权限,请在文件名旁边输入用户类别和要授予他们的权限。例如:

$ chmod ug+rwx example.txt
$ chmod o+r example2.txt

这将授予用户和组的读取、写入和执行权限,而其他用户只能读取。在符号模式下,chmod u表示用户所有者的权限,chmod g表示文件组中的其他用户,chmod o表示不在文件组中的其他用户。对于所有用户,使用chmod a。

也许您想更改用户所有者本身。您可以使用该chown命令来执行此操作。同样,该chgrp命令可用于更改文件的组所有权。

七、什么是特殊文件权限?

文件和目录具有特殊权限,并在已涵盖的标准权限集上提供额外的特权。

SUID 是用户访问级别的特殊权限,无论谁传递命令,始终以拥有文件的用户身份执行。
SGID 允许以文件的组所有者身份执行文件;目录中创建的文件的组所有权设置为目录所有者。这对于组内不同成员协作使用的目录很有帮助,因为所有成员都可以访问和执行新文件。
“粘滞位”是限制文件删除的目录级特殊权限,这意味着只有文件所有者可以删除目录中的文件。

标签:文件,用户,目录,Linux,权限,所有者
From: https://blog.csdn.net/zhengzhaoyang122/article/details/143659401

相关文章

  • appinfoext.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个appinfoext.dll文件(挑选合适的版本文件)把......
  • AppHostNavigators.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个AppHostNavigators.dll文件(挑选合适的版本......
  • APMonUI.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个APMonUI.dll文件(挑选合适的版本文件)把它放......
  • apisampling.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个apisampling.dll文件(挑选合适的版本文件)把......
  • 文件重定向
    1.清空文本(把空内容覆盖到文本)[root@C7tmp]#cp-r/etc/passwd.[root@C7tmp]#lsfilea1 filea2 fileb filec passwd[root@C7tmp]#headpasswd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin......
  • Tomcat配置文件详解
    Tomcat配置文件详解这段XML配置文件是ApacheTomcat服务器的配置文件server.xml的一部分,它定义了Tomcat服务器如何运行,包括监听端口、连接器设置、服务组件、全局命名资源以及引擎和主机配置等。下面是对主要元素的详细解释:<Server>标签这是整个配置文件的根标签,包含了服务器......
  • 人工智能模型训练:从不同格式文件中读取训练数据集
    上一篇:《研发LLM模型,如何用数值表示人类自然语言?》序言:人工智能数据工程师在采集数据时往往会使用不同的工具,因此最终得到的原始数据结构各不相同。市场上已知的数据采集和分析工具所输出的文件格式大致有几种。前面我们介绍了如何从谷歌的TFDS中提取支持的格式数据,今天将为大家......
  • linux进程的控制
    我们已经学习完了Linux进程的概念,进程的存储空间等等问题,接下来就是学习如何使用进程和管理进程文章目录目录文章目录前言一、进程的创建1、fork函数初识2、fork函数返回值3、写时拷贝4、fork常规用法5、fork调用失败的原因二、进程终止1.进程退出场景2、进......
  • Linux 查找命令总结
    在使用linux时,经常需要进行文件查找。五种命令是有区别的。区别:(1)find 根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。(2)grep根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。(3)which 查看可执行文件......
  • Linux的boot和startup过程
    Linux的启动主要分为两阶段的过程:boot和startup。boot过程在计算机启动后触发,完成代表内核初始化成功并且系统已经启动。之后startup过程接管并将计算机转变为可触发状态。总的来说,主要由接下来的步骤完成:1、BIOSPOST2、Bootloader(GRUB2)3、Kernelinitialization4、Start......