'\" te .\" Copyright 1989 AT&T .\" Copyright (c) 1992, X/Open Company Limited All Rights Reserved .\" Portions Copyright (c) 2007, 2011, Oracle and/or its affiliates.All rights reserved. .\" Portions Copyright (c) 1982-2007 AT&T Knowledge Ventures .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation.Original documentation from The Open Group can be obtained online at http://www.opengroup.org/bookstore/. .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation.In the following statement, the phrase "this text" refers to portions of the system documentation.Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group.In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document.The original Standard can be obtained online at http://www.opengroup.org/unix/online.html.This notice shall appear on any product containing this material. .TH umask 1 "2011 年 7 月 12 日" "SunOS 5.11" "用户命令" .SH 名称 umask \- 获取或设置文件模式创建掩码 .SH 用法概要 .LP .nf \fB/usr/bin/umask\fR [\fB-S\fR] [\fImask\fR] .fi .SS "sh" .LP .nf \fBumask\fR [\fIooo\fR] .fi .SS "csh" .LP .nf \fBumask\fR [\fIooo\fR] .fi .SS "ksh88" .LP .nf \fBumask\fR [\fB-S\fR] [\fImask\fR] .fi .SS "ksh" .LP .nf \fBumask\fR [\fB-S\fR] [\fImask\fR] .fi .SH 描述 .sp .LP \fBumask\fR 实用程序可将当前 shell 执行环境的文件模式创建掩码设置为 \fImask\fR 操作数指定的值。该掩码影响后续所创建文件的文件权限位的初始值。如果 \fBumask\fR 的调用发生在子 shell 或单独的实用程序执行环境中,例如以下环境之一: .sp .in +2 .nf (umask 002) nohup umask ... find . -exec umask ... .fi .in -2 .sp .sp .LP 那么它不会影响调用者环境中的文件模式创建掩码。出于这一原因,不能使用 \fB/usr/bin/umask\fR 更改进行中会话的 umask。其效用仅限于检查调用者的 umask。要更改进行中会话的 umask,必须使用 shell builtin 之一。 .sp .LP 如果未指定 \fImask\fR 操作数,\fBumask\fR 实用程序会将正在调用的进程的文件模式创建掩码写入标准输出。 .SS "sh" .sp .LP 用户文件创建模式掩码设置为 \fIooo\fR。这三个八进制数字分别是指所有者、组和其他用户的读取/写入/执行权限(请参见 \fBchmod\fR(1)、\fBchmod\fR(2) 和 \fBumask\fR(2))。创建文件(请参见 \fBcreat\fR(2))时,将从系统指定的相应“数字”中减去每个指定数字的值。例如,\fBumask\fR \fB022\fR 可以删除组和其他用户的写入权限。通常在 \fB777\fR 模式下创建的文件(和目录)改为采用模式 \fB755\fR。在 \fB666\fR 模式下创建的文件(和目录)改为采用模式 \fB644\fR。 .RS +4 .TP .ie t \(bu .el o 如果省略了 \fIooo\fR,则会输出掩码的当前值。 .RE .RS +4 .TP .ie t \(bu .el o \fBumask\fR 由 shell 识别和执行。 .RE .RS +4 .TP .ie t \(bu .el o \fBumask\fR 可包含在用户的 \fB\&.profile\fR(请参见 \fBprofile\fR(4))中并在登录时调用,以自动设置用户对所创建文件或目录的权限。 .RE .SS "csh" .sp .LP 请参见上文有关 Bourne shell (\fBsh\fR)\fBumask\fR 内置命令的说明。 .SS "ksh88" .sp .LP 用户文件创建掩码设置为 \fImask\fR。\fImask\fR 可以是八进制数字或符号值,如 \fBchmod\fR(1) 所述。如果指定了符号值,新 \fBumask\fR 值是对以前的 umask 值的补数应用 \fImask\fR 的结果的补数。如果省略了 \fImask\fR,则会输出掩码的当前值。 .SS "ksh" .sp .LP \fBumask\fR 可将当前 shell 执行环境的文件创建掩码设置为 \fBmask\fI\fR\fR 操作数指定的值。该掩码影响后续所创建文件的文件权限位。\fImask\fR 可以是八进制数字或符号值,如 chmod(1) 中所述。如果指定了符号值,新文件创建掩码是对当前的文件创建掩码的补数应用 \fImask\fR 的结果的补数。如果未指定 \fImask\fR,\fBumask\fR 会将当前进程的文件创建掩码的值写入标准输出。 .SH 选项 .SS "ksh88" .sp .LP \fB/usr/bin/umask\fR 和 \fBksh88\fR 中的 \fBumask\fR 支持以下选项: .sp .ne 2 .mk .na \fB\fB-S\fR\fR .ad .RS 6n .rt 生成符号输出。 .RE .sp .LP 缺省输出样式不确定,但是在同一系统上后续调用 \fBumask\fR 时将识别为用来恢复以前的文件模式创建掩码的 \fImask\fR 操作数。 .SS "ksh" .sp .LP \fBksh\fR 支持以下选项: .sp .ne 2 .mk .na \fB\fB-S\fR\fR .ad .RS 6n .rt 导致写入文件创建掩码或将其视为符号值而非八进制数字。 .RE .SH 操作数 .sp .LP 支持下列操作数: .sp .ne 2 .mk .na \fB\fImask\fR\fR .ad .RS 8n .rt 一个用于指定新文件模式创建掩码的字符串。该字符串的处理方式与 \fBchmod\fR(1) 手册页中介绍的 \fImode\fR 操作数相同。 .sp 对于 \fIsymbolic_mode\fR 值,文件模式创建掩码的新值是 \fIsymbolic_mode\fR 字符串指定的文件模式的文件权限位部分的逻辑补数。 .sp 在 \fIsymbolic_mode\fR 值中,权限 \fIop\fR 字符 \fB+\fR 和 \fB-\fR 的解释与当前文件模式创建掩码相对。\fB+\fR 会导致在掩码中清除所指权限对应的位。\fB-\fR 会导致在掩码中设置所指权限对应的位。 .sp 用于指定文件模式位而非文件权限位的 \fImode\fR 值的解释不确定。 .sp 文件模式创建掩码设置为所得数字值。 .sp 之前在未指定操作数的情况下在同一系统上调用 \fBumask\fR 的缺省输出也会识别为 \fImask\fR 操作数。尽管采用这种方式得到的操作数是八进制数字,但是其用途并未过时。 .RE .SH 输出 .sp .LP 如果未指定 \fImask\fR 操作数,\fBumask\fR 实用程序将向标准输出写入一条消息,该消息随后可用作 \fBumask\fR \fImask\fR 操作数。 .sp .LP 如果指定了 \fB-S\fR,该消息将采用以下格式: .sp .in +2 .nf "u=%s,g=%s,o=%s\en", \fIowner permissions\fR, \fIgroup permissions\fR, \e \fIother permissions\fR .fi .in -2 .sp .sp .LP 这三个值为集合 \fB{\fRr\fB,\fR \fBw\fR, \fBx\fR} 中字母的组合。存在某个字母表示在文件模式创建掩码中清除相应的位。 .sp .LP 如果指定了 \fImask\fR 操作数,则不会向标准输出写入任何内容。 .SH 示例 .LP \fB示例 1 \fR使用 \fBumask\fR 命令 .sp .LP 本部分列举的是 \fB/usr/bin/umask\fR 实用程序和 \fBksh88 umask\fR builtin 的示例。 .sp .LP 以下任一命令: .sp .in +2 .nf \fBumask a=rx,ug+w umask 002\fR .fi .in -2 .sp .sp .LP 均可设置模式掩码以使后续创建的文件清除 \fBS_IWOTH\fR 位。 .sp .LP 使用以上任一命令设置模式掩码后,均可使用 \fBumask\fR 命令写入模式掩码的当前值: .sp .in +2 .nf example$ \fBumask\fR 0002 .fi .in -2 .sp .sp .LP 输出格式不确定,但是以前的实现程序采用过时的八进制整数模式格式。 .sp .in +2 .nf example$ \fBumask -S\fR u=rwx,g=rwx,o=rx .fi .in -2 .sp .sp .LP 这些输出均可用作后续调用 \fBumask\fR 实用程序的掩码操作数。 .sp .LP 假定按上述方式设置了模式掩码,命令: .sp .in +2 .nf \fBumask g-w\fR .fi .in -2 .sp .sp .LP 可以进一步设置模式掩码以使后续创建的文件清除 \fBS_IWGRP\fR 和 \fBS_IWOTH\fR 位。 .sp .LP 此命令: .sp .in +2 .nf \fBumask --w\fR .fi .in -2 .sp .sp .LP 可以设置模式掩码以使后续创建的文件清除所有写入位。请注意,\fImask\fR 操作数 \fBr\fR、\fBw\fR、\fBx\fR 或以连字符 (\fB-\fR) 开头的任何字符前面都必须带有 \fB–\fR,才能避免将其解释为一个选项。 .SH 环境变量 .sp .LP 有关影响 \fBumask\fR 执行的环境变量 \fBLANG\fR、\fBLC_ALL\fR、\fBLC_COLLATE\fR\fBLC_CTYPE\fR、\fBLC_MESSAGES\fR 和 \fBNLSPATH\fR 的说明,请参见 \fBenviron\fR(5)。 .SH 退出状态 .sp .LP 将返回以下退出值: .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 6n .rt 文件模式创建掩码已成功更改或者未提供 \fImask\fR 操作数。 .RE .sp .ne 2 .mk .na \fB\fB>0\fR\fR .ad .RS 6n .rt 出现错误。 .RE .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .SS "/usr/bin/umask、csh、ksh88、sh" .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性system/core-os _ 接口稳定性Committed(已确定) _ 标准请参见 \fBstandards\fR(5)。 .TE .SS "ksh" .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性system/core-os _ 接口稳定性Volatile(可变) .TE .SH 另请参见 .sp .LP \fBchmod\fR(1)、\fBcsh\fR(1)、\fBksh\fR(1)、\fBksh88\fR(1)、\fBsh\fR(1)、\fBchmod\fR(2)、\fBcreat\fR(2)、\fBumask\fR(2)、\fBprofile\fR(4)、\fBattributes\fR(5)、\fBenviron\fR(5)、\fBstandards\fR(5)