RHEL 管理 umask
您可以使用该实用程序显示、设置或更改 umask 的当前值或默认值。umask
显示 umask 的当前值
您可以使用该实用程序以符号或八进制模式显示 umask 的当前值。umask
程序
-
要在符号模式下显示 umask 的当前值,请使用:
$ umask -S
-
要在八进制模式下显示 umask 的当前值,请使用:
$ umask
注意当以八进制模式显示 umask 时,您可能会注意到它显示为四位数字( 或 )。umask 的第一位数字表示一个特殊位(粘滞位、SGID 位或 SUID 位)。如果第一位数字设置为 ,则不设置特殊位。
0002
0022
0
显示默认的 bash umask
您可以使用许多 shell,例如 、 和 。这些 shell 可以表现为登录或非登录 shell。您可以通过打开本机或 GUI 终端来调用登录 shell。bash
ksh
zsh
tcsh
要确定您是在登录 shell 还是非登录 shell 中执行命令,请使用命令。echo $0
例确定您是在登录还是非登录 bash shell 中工作
-
如果命令的输出返回 ,则您正在非登录 shell 中执行命令。
echo $0
bash
$ echo $0 bash
非登录 shell 的默认值在配置文件中设置。
umask
/etc/bashrc
-
如果命令的输出返回 ,则表示您正在登录 shell 中执行该命令。
echo $0
-bash
# echo $0 -bash
登录 shell 的默认值在配置文件中设置。
umask
/etc/login.defs
程序
-
要显示非登录 shell 的默认值,请运行以下命令:
bash
umask
$ grep umask /etc/bashrc
输出返回:
# Set default umask for non-login shell only if it is set to 0 [
umask
-eq 0 ] && umask 022 -
要显示登录 shell 的默认值,请使用:
bash
umask
$ 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=rwx
umask -S a=rwx
注意umask 仅对当前 shell 会话有效。
使用八进制值设置 umask
您可以使用带有八进制值 (数字) 的实用程序来设置当前 shell 会话的 umask。umask
程序
-
要为当前 shell 会话设置 umask,请使用:
$ umask octal_value
将 octal_value 替换为八进制值。有关更多详细信息,请参阅用户文件创建模式掩码。
注意umask 仅对当前 shell 会话有效。
更改非登录 shell 的默认 umask
您可以通过修改文件来更改标准用户的默认 umask。bash
/etc/bashrc
先决条件
- 您拥有访问权限。
root
程序
- 在编辑器中打开文件。
/etc/bashrc
-
修改以下部分以设置新的默认值:
bash
umask
# Set default
umask
for non-login shell only if it is set to 0 [umask
-eq 0 ] && umask 022 - 保存更改并退出编辑器。
更改登录 shell 的默认 umask
您可以通过修改文件来更改用户的默认 umask。bash
root
/etc/login.defs
先决条件
root
访问
程序
- 作为 ,在编辑器中打开文件。
root
/etc/login.defs
-
修改以下部分以设置新的默认 umask:
bash
# 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
- 保存更改并退出编辑器。
更改特定用户的默认 umask
您可以通过修改特定用户的默认 umask 来更改该用户的默认 umask。.bashrc
程序
-
将指定 umask 的八进制值的行附加到特定用户的文件中。
.bashrc
$ echo 'umask octal_value' >> /home/username/.bashrc
将 octal_value 替换为八进制值,并将 username 替换为用户名。有关更多详细信息,请参阅用户文件创建模式掩码。
为新创建的 home 目录设置默认权限
您可以通过修改文件来更改新创建用户的主目录的权限模式。/etc/login.defs
程序
- 作为 ,在编辑器中打开文件。
root
/etc/login.defs
-
修改以下部分以设置新的默认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
- 如果设置了 HOME_MODE,请保存更改并退出编辑器。
-
如果未设置 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
- 保存更改并退出编辑器。