RHEL 管理 umask

您可以使用该实用程序显示、设置或更改 umask 的当前值或默认值。umask

显示 umask 的当前值

您可以使用该实用程序以符号或八进制模式显示 umask 的当前值。umask

程序

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

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

    $ umask

显示默认的 bash umask

您可以使用许多 shell,例如 、 和 。这些 shell 可以表现为登录或非登录 shell。您可以通过打开本机或 GUI 终端来调用登录 shell。bashkshzshtcsh

要确定您是在登录 shell 还是非登录 shell 中执行命令,请使用命令。echo $0

例确定您是在登录还是非登录 bash shell 中工作

  • 如果命令的输出返回 ,则您正在非登录 shell 中执行命令。echo $0bash

    $ echo $0
    bash

    非登录 shell 的默认值在配置文件中设置。umask/etc/bashrc

  • 如果命令的输出返回 ,则表示您正在登录 shell 中执行该命令。echo $0-bash

    # echo $0
    -bash

    登录 shell 的默认值在配置文件中设置。umask/etc/login.defs

程序

  • 要显示非登录 shell 的默认值,请运行以下命令:bashumask

    $ grep umask /etc/bashrc

    输出返回:

    # Set default umask for non-login shell only if it is set to 0
          [ umask -eq 0 ] && umask 022
  • 要显示登录 shell 的默认值,请使用:bashumask

    $ grep "UMASK" /etc/login.defs

    输出返回:

    # UMASK is also used by useradd(8) and newusers(8) to set the mode for new
    UMASK        022
    # If HOME_MODE is not set, the value of UMASK is used to create the mode.

使用符号值设置 umask

您可以使用带有符号值 (字母和符号的组合) 的实用程序来设置当前 shell 会话的 umaskumask

您可以分配以下权限

  • 读取 (r)
  • 写入 (w)
  • 执行 (x)

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

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

要添加或删除权限,您可以使用以下标志

  • +在现有权限的基础上添加权限
  • -从现有权限中删除权限
  • =删除现有权限并显式定义新权限

程序

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

    $ umask -S <level><operation><permission>

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

使用八进制值设置 umask

您可以使用带有八进制值 (数字) 的实用程序来设置当前 shell 会话的 umaskumask

程序

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

    $ umask octal_value

    将 octal_value 替换为八进制值。有关更多详细信息,请参阅用户文件创建模式掩码。

更改非登录 shell 的默认 umask

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

先决条件

  • 您拥有访问权限。root

程序

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

    # Set default umask for non-login shell only if it is set to 0 [ umask -eq 0 ] && umask 022
  3. 保存更改并退出编辑器。

更改登录 shell 的默认 umask

您可以通过修改文件来更改用户的默认 umaskbashroot/etc/login.defs

先决条件

  • root访问

程序

  1. 作为 ,在编辑器中打开文件。root/etc/login.defs
  2. 修改以下部分以设置新的默认 umaskbash

    # 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

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

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

更改特定用户的默认 umask

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

程序

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

    $ echo 'umask octal_value' >> /home/username/.bashrc

    将 octal_value 替换为八进制值,并将 username 替换为用户名。有关更多详细信息,请参阅用户文件创建模式掩码

为新创建的 home 目录设置默认权限

您可以通过修改文件来更改新创建用户的主目录的权限模式。/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

    将默认八进制值 () 替换为另一个八进制值。所选模式将用于创建主目录的权限。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

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

  5. 保存更改并退出编辑器。
声明:欢迎大家光临本站,学习IT运维技术,转载本站内容,请注明内容出处”来源刘国华教育“。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。