Linux文件权限详解

Linux 文件权限是 Linux 系统安全和管理的重要组成部分,它决定了不同用户对文件和目录的访问级别。以下是对 Linux 文件权限的详细解析:

权限类型

  • 读权限(Read,简称 r):对于文件来说,拥有读权限的用户可以查看文件的内容,例如使用catmore等命令查看文件。对于目录而言,读权限允许用户列出目录中的文件和子目录,如使用ls命令查看目录内容。
  • 写权限(Write,简称 w):针对文件,具备写权限的用户能够修改文件的内容,包括添加、删除或修改文件中的数据,可通过文本编辑器等工具进行操作。对于目录,写权限允许用户在目录中创建、删除或重命名文件和子目录。
  • 执行权限(Execute,简称 x):如果是可执行文件(如脚本或二进制程序),拥有执行权限的用户可以运行该文件。对于目录,执行权限允许用户进入该目录,即使用cd命令切换到该目录下。

权限表示方法

  • 数字表示法:Linux 系统中,每种权限都对应一个数字。读权限为 4,写权限为 2,执行权限为 1。将这些数字相加就可以表示不同的权限组合。例如,读和写权限就是 4 + 2 = 6,读、写和执行权限则是 4 + 2 + 1 = 7。
  • 字符表示法:用rwx分别表示读、写、执行权限,没有相应权限则用-表示。例如,rwxrw-r--表示文件所有者具有读、写、执行权限,文件所属组用户具有读、写权限,其他用户只有读权限。

权限分配对象

  • 所有者(Owner):文件或目录的创建者通常就是所有者,所有者对文件或目录具有最高的控制权,可根据需要分配不同的权限给其他用户。
  • 所属组(Group):Linux 系统中的用户可以被划分到不同的组中,文件或目录可以属于一个特定的组。组内的用户对该文件或目录具有组所拥有的权限。
  • 其他用户(Others):除了所有者和所属组中的用户之外的其他所有用户,他们对文件或目录的访问权限由 “其他用户” 权限设置来决定。

查看文件权限

在 Linux 中,可以使用ls -l命令来查看文件和目录的详细信息,其中包括文件权限。例如,执行ls -l后,可能会看到如下输出:
-rwxr-xr-x 1 user group 1234 May 10 12:00 file.txt

这里的第一列-rwxr-xr-x就是文件的权限信息,-表示这是一个普通文件,后面的rwx表示所有者的权限,r-x表示所属组的权限,r-x表示其他用户的权限。

修改文件权限

  • chmod 命令:用于修改文件或目录的权限。可以使用数字表示法或字符表示法来修改权限。例如,要将文件file.txt的权限设置为所有者具有读、写、执行权限,所属组和其他用户只有读和执行权限,可以使用命令chmod 755 file.txt,也可以使用字符表示法chmod u=rwx,g=rx,o=rx file.txt
  • chown 命令:用于更改文件或目录的所有者和所属组。例如,chown newuser:newgroup file.txtfile.txt的所有者更改为newuser,所属组更改为newgroup

特殊权限

  • SUID(Set UID):当可执行文件设置了 SUID 权限后,用户执行该文件时,将以文件所有者的身份运行,而不是以用户自己的身份。这通常用于一些需要特殊权限才能执行的程序,如passwd命令,普通用户可以通过它来修改自己的密码,但实际上passwd程序需要写入/etc/shadow文件,而这个文件只有root用户才有写权限,通过 SUID 权限,普通用户在执行passwd时就具有了root用户的权限来修改密码。
  • SGID(Set GID):对于可执行文件,设置 SGID 后,用户执行该文件时,进程的有效组 ID 将被设置为文件所属组的 ID。对于目录,设置 SGID 后,在该目录下创建的文件和子目录将自动继承该目录的所属组。
  • Sticky Bit:通常用于目录,设置了 Sticky Bit 的目录,只有文件的所有者和root用户才能删除或重命名该目录下的文件,即使其他用户对该目录有写权限也不能删除不属于自己的文件。典型的例子是/tmp目录,所有用户都可以在其中创建文件,但只能删除自己创建的文件。

posted on 2025-03-09 09:52  数据库那些事儿  阅读(81)  评论(0)    收藏  举报