Linux文件权限以及权限控制

简介: Linux文件权限以及权限控制

前言

为什么是文件的权限?

因为:Linux一切皆文件

查看文件权限

通过 ls --help 可以看到 l 参数的意思是 使用长列表格式

使用如下命令,以长列表格式查看根目录有哪些文件

ls -l /
输出比较多,咱这边拿 etc 目录来做一个例子
drwxr-xr-x.  77 root root 8192 Mar 30  2019 etc
咱们对输出的内容先做一个拆分,一个个来解释说明,这里总共拆分成12段内容

d rwx r-x r-x . 77 root root 8192 Mar 30 2019 etc

第一段:文件类型

  • -表示普通文件
  • d表示目录
  • l表示链接文件
  • p表示管道文件
  • b表示块设备文件(一般在 /dev 目录下 )
  • c表示字符设备文件(一般在 /dev 目录下 )
  • s表示套接字文件
由此可以看出,我们的 etc 是一个目录类型的文件
shell 默认文件类型颜色
前提是使用 系统缺省的配色方案
  • 灰白色表示普通文件
  • 亮绿色表示可执行文件
  • 亮红色表示压缩文件
  • 灰蓝色表示目录
  • 亮蓝色表示链接文件(文件名称后面会有 -> <路径>
  • 亮黄色表示设备文件

第二、三、四段:UGO权限

从左往右依次为 (所属用户权限)U (所属组权限)G (其他用户权限)O (所属用户和所属组和第七段,第八段有关)

  • r 读取权限

    • 针对文件:可以查看文件内容
    • 针对目录:可以查看目录下有哪些文件和目录
  • w 写入权限

    • 针对文件:可以修改、删除、移动
    • 针对目录:可以删除、移动
  • x 执行权限

    • 针对文件:具有执行权限
    • 针对目录:具有进入目录的权限
  • - 无权限

    • 举例:

      • r-x:表示具有读取和执行权限,没有写入权限
      • rw-:表示具有读取和写入权限,没有执行权限
  • 特殊权限

    • SUID:仅适用于二进制可执行文件,所具有的功能是,只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件所有者的身份去执行此文件,一旦文件执行结束,身份的切换也随之消失

      • 所属用户权限的x权限位置显示为s
    • SGID:既可以对文件进行配置,也可以对目录进行配置。默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用于创建一个协作目录

      • 所属组权限的x权限位置显示为s
    • SBIT:权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件

      • 其他用户权限的x权限位置显示为t
UMASK 默认权限
执行 umask 命令可以看到 root用户默认的值是 0022,普通用户默认的值是 0002

第一个数字用来表示SUIDSGIDSBIT

第二个数字用来表示所属用户U

第三个数字用来表示所属组G

第四个数字用来表示其他用户O

以数字的形式代替 rwx 权限
  • r:4
  • w:2
  • x:1
  • SUID:4
  • SGID:2
  • SBIT:1
文件和目录创建时的默认权限
计算公式:文件或目录的最高权限 - UMASK默认值 = 文件或目录创建时的默认权限

出于安全考虑,文件的最高权限为666,也就是rw-rw-rw-,默认都不提供执行权限

目录的最高权限为777,也就是rwxrwxrwx

计算UMASK创建默认权限,一般只看最后三位数字(除了特殊需求)

  • 文件创建时默认权限

    • 666 - 022 = 644

      • 因此 root 用户创建的文件,默认权限为rw-r--r--
    • 666 - 002 = 664

      • 因此普通用户创建的文件,默认权限为rw-rw-r--
  • 目录创建时默认权限

    • 777 - 022 = 755

      • 因此 root 用户创建的目录,默认权限为rwx-r-x-r-x
    • 777 - 002 = 775

      • 因此普通用户创建的目录,默认权限为rwxrwxr-x
权限控制 之 chmod 命令
权限控制 之 chown 命令
权限控制 之 chgrp 命令
参考文档:

Linux SetUID(SUID)文件特殊权限用法详解

Linux SetGID(SGID)文件特殊权限用法详解

Linux Stick BIT(SBIT)文件特殊权限用法详解

Linux umask详解:令新建文件和目录拥有默认权限

文件权限管理

隐藏权限 chattr 命令
常用命令参数
  • A:即 Atime,告诉系统不要修改对这个文件的最后访问时间。
  • S:即 Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
  • a:即 Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
  • b:不更新文件或目录的最后存取时间。
  • c:将文件或目录压缩后存放。
  • d:当dump程序执行时,该文件或目录不会被dump备份。
  • D:检查压缩文件中的错误。
  • i:即 Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
  • s:彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。
  • u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录。
  • t:文件系统支持尾部合并(tail-merging)。
  • X:可以直接访问压缩文件的内容。
  • R:递归修改指定目录下的子目录和文件
  • +:在原有参数设定基础上,追加参数。
  • -:在原有参数设定基础上,移除参数。
  • =:更新为指定参数设定。
chattr 命令的用法

先生成一个有内容的文件

echo 'hello world' > text.txt
只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件,不允许删除这个文件
chattr +a text.txt
查看隐藏权限
lsattr text.txt
-----a---------- text.txt

追加内容到 text.txt 文件

    echo 'test' >> text.txt
删除 text.txt 文件
rm -f text.txt
rm: cannot remove ‘text.txt’: Operation not permitted 此时就会返回如下信息,不能删除

解除隐藏权限

此时再去删除文件,文件就可以被删除了

chattr -a text.txt
参考文档:

Linux chattr 命令详解

(总结)Linux的chattr与lsattr命令详解

第五段:SELINUX 和 ACL 权限

  • .:表示有 SELINUX 安全上下文,没有 ACL 权限

    • SELINUX 开启时创建的安全上下文,在 SELINUX 被关闭后依然存在,不会被删除
    • SELINUX 被关闭后创建的文件或目录,不再显示.
  • +:表示有 ACL 权限,至于有没有 SELINUX 安全上下文,需要使用 ls -Z 命令查看了
参考文档:

Linux ACL权限设置(setfacl和getfacl)

第六段:链接数

对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减2才等于该目录下的子目录的实际个数。

比如这里的include目录下,其实是没有子目录的,所以应该是0,但是它这里却显示2,这是因为要加上.目录和..目录。在linux下,.目录表示当前目录,..目录表示上一级目录。

这也可以解释上图中第一行的.目录下的3和第二行..目录下的26。因为当前目录下有一个include目录,所以加上.目录和..目录这2个目录就等于3,所以第一行会显示3。而上一级目录共有24个目录,加上上一级目录的.目录和..目录这2个目录,所以这里的第二行显示的是26。

对于其他文件,表示指向它的链接文件的个数。

目录
相关文章
|
6月前
|
安全 Linux 数据安全/隐私保护
深入理解 Linux 文件系统的权限控制
【4月更文挑战第1天】本文旨在探讨 Linux 操作系统中文件系统权限的核心机制,解析用户、组和其他三类主体对文件及目录的访问控制。文章首先概述了 Linux 文件权限的基本概念,然后详细阐述了如何使用 chmod 命令修改文件权限,以及特殊权限位的作用。接着,文中通过实例讲解了文件权限在实际应用中的影响,并讨论了文件权限与系统安全之间的关联。最后,文章总结了合理配置文件权限对于维护系统安全性的重要性。
|
6月前
|
算法 安全 Linux
Linux粘滞位(Sticky Bit)与文件权限的深度解析
Linux粘滞位(Sticky Bit)与文件权限的深度解析
192 0
|
6月前
|
存储 Linux 数据安全/隐私保护
Linux文件权限及用户管理
Linux文件权限及用户管理
50 0
|
6月前
|
安全 Linux 数据安全/隐私保护
【Linux】深入理解Linux文件权限
【Linux】深入理解Linux文件权限
94 0
|
5天前
|
存储 安全 Linux
|
3月前
|
安全 Linux 数据安全/隐私保护
Linux系统中的权限控制
【8月更文挑战第21天】在Linux系统中,权限控制是保障系统安全与稳定的关键机制。它主要分为用户与用户组管理、文件及目录权限设置和特殊权限位三大部分。用户包括超级用户root和普通用户,各自拥有不同级别的操作权限。文件权限采用数字表示法,如755赋予所有者读写执行权限,而用户组及其他用户仅可读取与执行。目录权限还包含额外的执行、写入和读取权限,影响用户能否访问其中的文件。此外,特殊权限位如SUID、SGID和Sticky Bit进一步增强了安全性,例如SUID能让普通用户以root身份执行特定命令。合理的权限设置不仅能够防止未授权访问,还能在多用户环境中确保数据隔离与系统稳定。
|
5月前
|
Linux
linux查看修改文件权限
linux查看修改文件权限
48 4
|
2月前
|
安全 Linux 数据安全/隐私保护
探索Linux操作系统的文件权限管理
【9月更文挑战第29天】在数字世界中,文件权限管理如同保护我们隐私的锁。本文将带你了解如何在Linux系统中设置和管理文件权限,确保你的数据安全。我们将一起学习如何通过命令行工具来控制文件访问,就像学习一门新语言一样有趣。准备好了吗?让我们一起开启这场技术之旅!
|
27天前
|
Linux
linux/mac 下查看、修改文件权限的命令
这篇文章介绍了在Linux和Mac操作系统下如何查看和修改文件及文件夹的权限。
44 0
|
3月前
|
Linux 开发工具
在Linux中,文件权限有哪些?有什么作用?
在Linux中,文件权限有哪些?有什么作用?