安卓系统

Linux中的Umask命令

23 尚硅谷 云计算 Linux系统管理 常用命令 umask权限

23 尚硅谷 云计算 Linux系统管理 常用命令 umask权限

目录:

Anonim

在Linux和Unix操作系统上,所有新文件都是使用默认权限集创建的。 使用 umask 实用程序,可以查看或设置文件模式创建掩码,该掩码确定新创建的文件或目录的权限位。

mkdir,touch,tee和其他创建新文件和目录的命令使用它。

Linux权限

在继续之前,让我们简短地解释一下Linux权限模型。

在Linux中,每个文件都与一个所有者和一个组相关联,并为三种不同类别的用户分配了权限访问权限:

  • 文件owner.group成员。其他人。

有三种权限类型适用于每个类:

  • 读取权限,写入权限,执行权限。

此概念使您可以指定允许哪些用户读取文件,写入文件或执行文件。

要查看文件许可权,请使用 ls 命令:

ls -l dirname

drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type

第一个字符代表文件类型,可以是常规文件( - ),目录( d ),符号链接( l )或任何其他特殊文件类型。

接下来的9个字符代表权限,每3组三个字符。 第一组显示所有者权限,第二组显示所有者权限,最后一组显示其他所有人权限。

八进制值为 4 字符 r 表示读取,八进制值为 2 字符 w 表示写入, x 八进制值为 1 字符表示执行权限,而( - )八进制值为 0 字符表示无权限。

还有其他三种特殊的文件权限类型: setuid setgid Sticky Bit

在上面的示例中( rwxr-xr-x )表示所有者拥有读取,写入和执行权限( rwx ),该组和其他用户拥有读取和执行权限。

如果我们使用数字符号表示文件权限,我们将得出数字 755

  • 所有者: rwx = 4+2+1 = 7 组: rx = 4+0+1 = 5 其他: rx = 4+0+1 = 5

以数字符号表示时,权限可以具有三个或四个八进制数字(0-7)。 第一位数字表示特殊权限,如果省略,则意味着在文件上未设置特殊权限。 在我们的情况下 755 0755 相同。 第一位数字可以是 setuid 4 setgid 2 Sticky Bit 1 的组合。

可以使用 chmod 命令更改文件许可权,而可以使用 chown 命令更改所有权。

了解umask

默认情况下,在Linux系统上,文件的默认创建权限为 666 ,它向用户,组和其他用户授予读和写权限,为目录提供 777 ,这意味着对用户,组和其他用户的读,写和执行权限。其他。 Linux不允许创建具有执行权限的文件。

可以使用 umask 实用程序修改默认的创建权限。

umask 仅影响当前的shell环境。 在大多数Linux发行版中,默认的系统范围umask值是在 pam_umask.so /etc/profile 文件中设置的。

要查看当前的掩码值,只需键入不带任何参数的 umask 即可:

umask

输出将包括

022

umask 值包含不会在新创建的文件和目录上设置的权限位。

正如我们已经提到的,文件的默认创建权限是 666 ,目录的默认创建权限是 777 。 要计算新文件的权限位,请从默认值中减去umask值。

例如,要计算 uname 022 将如何影响新创建的文件和目录,请使用:

  • 文件: 666 - 022 = 644 。 所有者可以读取和修改文件。 组和其他人只能读取文件。目录:777-022 777 - 022 = 755 。所有者可以cd进入目录并列出读取,修改,创建或删除目录中的文件。 Group和其他人可以 cd 进入目录并列出并读取文件。

您还可以使用 -S 选项以符号形式显示掩码值:

umask -S

u=rwx, g=rx, o=rx

与数字符号不同,符号符号值包含将在新创建的文件和目录上设置的权限位。

设定遮罩值

可以使用八进制或符号表示法设置文件创建掩码。 要使更改永久 umask ,请在全局配置文件(例如 /etc/profile 文件)中设置新的 umask 值,这会影响所有用户,或者在用户的shell配置文件(例如 ~/.profile ~/.bashrc ~/.zshrc 中设置新的 umask 值。只会影响用户。 用户文件的优先级高于全局文件。

在更改 umask 值之前,请确保新值不构成潜在的安全风险。 限制值小于 022 值应格外小心。 例如, umask 000 表示任何人都将具有对所有新创建文件的读取,写入和执行权限。

假设我们要为新创建的文件和目录设置更多的限制性权限,这样其他人将无法进入目录并读取文件。 我们想要的目录权限为 750 ,文件权限为 640

要计算 umask 值,只需从默认值中减去所需的权限:

777-750 = 027 值: 777-750 = 027

用数字符号表示的所需 umask 值为 027

要在系统范围内永久设置新值,请使用文本编辑器打开 /etc/profile 文件:

sudo nano /etc/profile

并在文件开头更改或添加以下行:

/ etc / profile

umask 027

为了使更改生效,请运行以下 source 命令或注销并登录:

source /etc/profile

为了验证新设置,我们将使用 mkdir 创建一个新文件和目录,然后 touch

mkdir newdir touch newfile

drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile

设置文件创建掩码的另一种方法是使用符号表示法。 例如, umask u=rwx, g=rx, o= umask 027 相同。

结论

在本指南中,我们解释了Linux权限以及如何使用 umask 命令为新创建的文件或目录设置权限位。

有关更多信息,请在终端中输入 man umask

umask终端