插件窝 干货文章 linux文件权限中保存了什么信息

linux文件权限中保存了什么信息

权限 文件 用户 执行 530    来源:    2025-05-02

在Linux系统中,文件权限信息主要通过以下几个部分存储和管理:

1. 基础权限位(9位字符)

  • 用户类别
    • owner(属主):文件所有者权限(第1-3位)
    • group(属组):文件所属用户组权限(第4-6位)
    • others(其他用户):其他用户权限(第7-9位)
  • 权限类型

    • r (read):读取权限(数字表示为4
    • w (write):写入权限(数字表示为2
    • x (execute):执行权限(数字表示为1

    示例-rwxr-xr--

  • 属主:读写执行(rwx = 7)
  • 属组:读执行(r-x = 5)
  • 其他用户:只读(r-- = 4)
  • 数字表示:754

2. 文件类型标识(第1位字符)

  • -:普通文件
  • d:目录
  • l:符号链接
  • c/b:字符设备/块设备
  • s:套接字
  • p:管道文件

3. 特殊权限位(附加3位)

  • SUID (Set User ID)
    • 属主执行位设为s(如 -rwsr-xr-x
    • 用户执行文件时临时获得属主权限(常用于/usr/bin/passwd)。
  • SGID (Set Group ID)
    • 属组执行位设为s(如 -rwxr-sr-x
    • 目录下新建文件继承父目录的属组(常用于共享目录)。
  • Sticky Bit

    • 其他用户执行位设为t(如 /tmpdrwxrwxrwt
    • 仅文件所有者或root可删除/重命名文件(防用户互删文件)。

    数字表示:SUID=4, SGID=2, Sticky=1(如 1777 表示全权限+Sticky Bit)。


4. 访问控制列表(ACL)

  • 扩展权限机制,允许为特定用户/组设置独立权限。
  • 通过getfaclsetfacl命令管理。
    示例
    bash setfacl -m u:alice:rwx file.txt # 赋予用户alice读写执行权限

5. 文件属性(chattr)

  • 使用chattr设置的隐藏属性(如不可删除、仅追加等):
    • i(不可修改):chattr +i file
    • a(仅追加):chattr +a log.txt
  • 通过lsattr查看。

6. SELinux/AppArmor上下文

  • 安全增强模块(如SELinux)为文件添加安全标签,控制进程访问权限。
  • 通过ls -Z查看:
    bash -rw-r--r--. root root system_u:object_r:etc_t:/etc/passwd

如何查看权限?

  • ls -l:显示基础权限和特殊位。
  • stat命令:查看详细权限(八进制+文本):
    bash stat file.txt 输出示例:
    Access: (0754/-rwxr-xr--) Uid: ( 1000/ user) Gid: ( 1000/ group)

权限存储位置

  • 文件系统中:权限信息存储在文件的inode元数据中(非文件内容本身)。
  • 扩展属性:ACL/SELinux信息可能存储在扩展属性(xattr)中。

通过理解这些权限组件,可以精确控制文件访问和安全策略。

下一篇:没有了