10.3. 管理 umask


您可以使用 umask 工具显示、设置或更改 umask 的当前或默认值。

10.3.1. 显示 umask 的当前值

您可以使用 umask 工具以符号或数值模式显示 umask 的当前值。

流程

  • 要在符号模式下显示 umask 的当前值,请使用:

    $ umask -S
    Copy to Clipboard Toggle word wrap
  • 要在八进制模式下显示 umask 的当前值,请使用:

    $ umask
    Copy to Clipboard Toggle word wrap
    注意

    以八进制模式显示 umask 时,您可以注意到它显示了四位数字(00020022)。umask 的第一个数字代表一个特殊的位(spicky 位、SGID 位或 SUID 位)。如果第一个数字设定为 0,则代表没有设置特殊位。

10.3.2. 使用符号值设置 umask

您可以使用 umask 工具及符号值(字母和符号组合)来为当前的 shell 会话设置 umask

您可以分配以下 权限

  • (r)
  • (w)
  • 执行(x)

权限可分配给以下 所有权级别

  • 用户所有者 (u)
  • 组所有者(g)
  • 其他 (o)
  • 所有 (a)

要添加或删除权限,您可以使用以下 符号

  • + 在现有权限之上添加权限
  • - 从现有权限中删除权限
  • = 删除现有权限,并明确定义新权限

    注意

    任何在等号(=)后未指定的权限都将被自动禁止。

流程

  • 要为当前的 shell 会话设置 umask,请使用:

    $ umask -S <level><operation><permission>
    Copy to Clipboard Toggle word wrap

    <level> 替换为您要为其设置 umask 的 所有权级别。将 <operation> 替换为其中一个 符号。将 <permission> 替换为您要分配的 权限。例如,要将 umask 设为 u=rwx,g=rwx,o=rwx,使用 umask -S a=rwx

    如需了解更多详细信息,请参阅 用户文件创建模式

    注意

    umask 仅对当前 shell 会话有效。

10.3.3. 使用数值设置 umask

您可以使用 umask 工具和八进制值(数字)来为当前 shell 会话设置 umask

流程

  • 要为当前的 shell 会话设置 umask,请使用:

    $ umask octal_value
    Copy to Clipboard Toggle word wrap

    使用数值替换 octal_value。如需了解更多详细信息,请参阅 用户文件创建模式掩码

    注意

    umask 仅对当前 shell 会话有效。

10.3.4. 更改非登录 shell 的默认 umask

您可以通过修改 /etc/bashrc 文件来更改标准用户的默认 bash umask。

先决条件

  • root 访问权限。

流程

  1. 在编辑器中打开 /etc/bashrc 文件。
  2. 修改以下部分以设置新的默认 bash umask

        if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
           umask 002
        else
           umask 022
        fi
    Copy to Clipboard Toggle word wrap

    更改 UID -gt 199 将对所有 ID >= 199 及影响服务和安全性应用新的 umask。

umask 的默认值(002)替换为另一个数值。如需了解更多详细信息,请参阅 用户文件创建模式掩码

  1. 保存更改并退出编辑器。

10.3.5. 更改登录 shell 的默认 umask

您可以通过修改 /etc/profile 文件来更改 root 用户的默认 bash umask

先决条件

  • root 访问权限

流程

  1. root 用户身份,在编辑器中打开 /etc/profile 文件。
  2. 修改以下部分以设置新的默认 bash umask

    if [ $UID -gt 199 ] && [ “/usr/bin/id -gn” = “/usr/bin/id -un” ]; then
        umask 002
    else
        umask 022
    fi
    Copy to Clipboard Toggle word wrap

    umask 的数值(022)替换为另一个数值。如需了解更多详细信息,请参阅 用户文件创建模式掩码

  3. 保存更改并退出编辑器。

10.3.6. 更改特定用户的默认 umask

您可以通过修改用户的 .bashrc 来更改特定用户的默认 umask

流程

  • 将指定 umask 的八进制值的行追加到特定用户的 .bashrc 文件中。

    $ echo 'umask octal_value' >> /home/username/.bashrc
    Copy to Clipboard Toggle word wrap

    使用数值替换 octal_value,并使用用户名替换 username。如需了解更多详细信息,请参阅 用户文件创建模式掩码

10.3.7. 为新创建的主目录设置默认权限

您可以通过修改 /etc/login.defs 文件来更改新创建的用户的主目录的权限模式。

流程

  1. root 用户身份,在编辑器中打开 /etc/login.defs 文件。
  2. 修改以下部分来设置新的默认 HOME_MODE

    # HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
    # home directories.
    # If HOME_MODE is not set, the value of UMASK is used to create the mode.
    HOME_MODE       0700
    Copy to Clipboard Toggle word wrap

    将默认的八进制值(0700)替换为另一个八进制值。所选模式将用于为主目录创建权限。

  3. 如果设置了 HOME_MODE,请保存更改并退出编辑器。
  4. 如果没有设置 HOME_MODE,请修改 UMASK 来为新创建的主目录设置模式:

    # Default initial "umask" value used by login(1) on non-PAM enabled systems.
    # Default "umask" value for pam_umask(8) on PAM enabled systems.
    # UMASK is also used by useradd(8) and newusers(8) to set the mode for new
    # home directories if HOME_MODE is not set.
    # 022 is the default value, but 027, or even 077, could be considered
    # for increased privacy. There is no One True Answer here: each sysadmin
    # must make up their mind.
    
    UMASK           022
    Copy to Clipboard Toggle word wrap

    将默认的八进制值(022)替换为另一个八进制值。如需了解更多详细信息,请参阅 用户文件创建模式掩码

  5. 保存更改并退出编辑器。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat