Hello! 欢迎来到小浪云!


Liunx权限


linux系统中,存在两种类型的用户:root用户和普通用户。root用户几乎不受权限限制,而普通用户则受到严格的权限控制。

当使用ls -l命令查看目录内容时,会看到一系列字符,如下图所示:

Liunx权限

这些字符的含义如下:

Liunx权限

  • 拥有者:表示文件或目录的所属者。
  • 所属组:表示文件或目录所属的组。

Liunx权限

  • 第一个字符

    • d:表示目录。
    • -:表示普通文件。
  • 后面九个字符(每组三个)

    • r表示读权限。
    • w表示写权限。
    • x表示执行权限。

这些权限分为三组:

  • 第一组:拥有者的权限。
  • 第二组:所属组的权限。
  • 第三组:其他人的权限。

要改变这些权限,可以使用以下命令:

Liunx权限

  • u:改变拥有者的权限。

Liunx权限

  • g:改变所属组的权限。

Liunx权限

  • o:改变其他人的权限(other)。

也可以使用八进制方法进行权限更改:

Liunx权限

  • rwx:每一位权限可以用二进制表示,1表示有权限,0表示无权限。每组用八进制表示。

要更改文件或目录的所有者和所属组,需要使用以下命令:

  • chown:更改拥有者。
  • chgrp:更改所属组。

这些操作需要root权限。

Liunx权限

进入一个目录需要什么权限呢?答案是需要x权限。

Liunx权限

在目录内创建文件则需要w权限。

Liunx权限

目录的初始权限为777,普通文件的初始权限为666。但实际显示的权限可能不同,这是因为umask的影响。umask中的权限不会出现在最终的权限中。

我的umask值是0002。

Liunx权限

更改umask后,新创建的文件权限会发生变化。

Liunx权限

最终的权限并不是简单的初始权限减去umask,而是通过位运算得出的:最终权限 = 初始权限 & (~umask)。

粘滞位(sticky bit)可以防止用户在共享目录中删除他人创建的文件或目录。例如,创建一个共享目录mytmp,并设置所有权限:

Liunx权限

假设有两个用户,分别是temp和ML。

Liunx权限

在没有设置粘滞位的情况下,用户可以在共享目录中删除其他用户的文件:

Liunx权限

设置粘滞位后,用户就无法删除其他用户的文件了:

Liunx权限Liunx权限

相关阅读