Linux 权限管理是确保系统安全性和用户数据隐私的关键部分。Linux 系统中的每个文件和目录都有一组权限,这些权限定义了哪些用户可以访问、读取、写入和执行文件或目录

权限类型

Linux 权限分为三种类型:

  1. 读取权限 (r):允许用户查看文件内容或目录列表。
  2. 写入权限 (w):允许用户修改文件内容或目录中的文件。
  3. 执行权限 (x):允许用户执行文件(如果文件是可执行程序)或进入目录。

权限对象

权限可以分配给三类对象:

  1. 所有者 (u):文件或目录的创建者。
  2. 组 (g):一组用户,可以共享文件或目录的权限。
  3. 其他用户 (o):系统中的所有其他用户。

权限表示法

权限通常以两种方式表示:

  1. 符号表示法:使用字母和符号来表示权限。

    • r:读取权限
    • w:写入权限
    • x:执行权限
    • -:无权限

    例如,rwxr-xr-- 表示所有者有读、写、执行权限,组用户有读、执行权限,其他用户只有读权限。

  2. 八进制表示法:使用数字来表示权限。

    • 4:读取权限
    • 2:写入权限
    • 1:执行权限
    • 0:无权限

    例如,755 表示所有者有读、写、执行权限,组用户和其他用户有读、执行权限。

修改权限

使用 chmod 命令可以修改文件或目录的权限。

  • 符号模式

    chmod u+rwx,g+rx,o+r filename

    这表示给所有者添加读、写、执行权限,给组用户添加读、执行权限,给其他用户添加读权限。

  • 八进制模式

    chmod 755 filename

    这表示设置所有者为读、写、执行权限,组用户和其他用户为读、执行权限。

修改所有者和组

使用 chownchgrp 命令可以修改文件或目录的所有者和组。

  • 修改所有者

    chown new_owner filename

  • 修改组

    chgrp new_group filename

  • 同时修改所有者和组

    chown new_owner:new_group filename

特殊权限

除了基本的读、写、执行权限外,Linux 还有三种特殊权限:

  1. SetUID (4):当应用于可执行文件时,允许用户以文件所有者的权限执行该文件。

    chmod 4755 filename

  2. SetGID (2):当应用于可执行文件时,允许用户以文件所属组的权限执行该文件;当应用于目录时,新创建的文件将继承该目录的组。

    chmod 2755 filename

  3. Sticky Bit (1):当应用于目录时,只有文件的所有者、目录的所有者或超级用户可以删除或重命名该目录中的文件。

    chmod 1755 directory_name

查看权限

使用 ls -l 命令可以查看文件和目录的详细信息,包括权限。

ls -l

输出示例:

-rwxr-xr-- 1 user group 1234 Jan 1 12:34 filename

在这个示例中:

  • -rwxr-xr-- 表示权限。
  • 1 表示链接数。
  • user 表示所有者。
  • group 表示组。
  • 1234 表示文件大小。
  • Jan 1 12:34 表示最后修改时间。
  • filename 表示文件名。
最后修改:2024 年 10 月 25 日
喜欢就支持一下吧