Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

umask(1)

名前

umask - ファイルモード生成マスクの獲得と設定

形式

/usr/bin/umask [-S] [mask]

sh

umask [ooo]

csh

umask [ooo]

ksh88

umask [-S] [mask]

ksh

umask [-S] [mask]

説明

umask ユーティリティーは、現在のシェル実行環境のファイルモード生成マスクを mask オペランドが示す値に設定します。このマスクは、以降生成されるファイルのファイル許可ビットの初期値に影響します。次のように、umask がサブシェルや別のユーティリティー実行環境で呼び出された場合は、

(umask 002) 
nohup umask ... 
find . -exec umask ...

呼び出し側の環境のファイルモード生成マスクには影響しません。このため /usr/bin/umask ユーティリティーは、進行中のセッションにある umask の変更には使用できません。呼び出し側の umask を確認するためだけに使用できます。進行中のセッションにある umask を変更するには、シェルの組み込みコマンドを使用する必要があります。

mask オペランドが省略されると、umask ユーティリティーは呼び出し側プロセスのファイルモード生成マスクの値を標準出力に書き出します。

sh

ユーザーのファイル生成モードマスクを ooo で示す値に設定します。ooo は 3 つの 8 進数で、左から順番に所有者、グループ、その他のユーザー用の、読み取り/書き込み/実行権を表します。詳しくは chmod(1)chmod(2)umask(2) の説明を参照してください。umask で指定したそれぞれの値は、ファイル生成時にシステムが指定する値から減算されます (creat(2) を参照)。たとえば umask 022 と指定すると、グループとその他のユーザーに対する書き込み権が取り除かれます。 モード 777 で標準的に生成されたファイル (およびディレクトリ) はモード 755 になります。モード 666 で生成されたファイル (およびディレクトリ) はモード 644 になります。

  • ooo 引数を省略すると、マスクとして用いられている現在の値が出力されます。

  • umask はシェルにより認識され実行されます。

  • ユーザーの .profileumask を登録しておくと (profile(4) を参照)、ログイン時に実行され、生成されたファイルやディレクトリに対するユーザーのアクセス権モードが自動的に設定されます。

csh

前述の、shumask 組み込みコマンドについての説明を参照してください。

ksh88

ユーザーファイルの作成時のマスクを mask 引数が示す値に設定します。mask には、chmod(1) で説明する記号値または 8 進数を指定できます。記号値を指定すると、新しい umask 値は、mask を直前の umask 値の補数に適用した結果の補数になります。mask 引数を省略すると、マスクの現在の値を表示します。

ksh

umask は、現在のシェル実行環境のファイル生成マスクを mask オペランドが示す値に設定します。このマスクは、以降生成されるファイルのファイル許可ビットに影響します。mask には、chmod(1) で説明する記号値または 8 進数を指定できます。記号値を指定すると、新しいファイル生成マスクは、mask を現在のファイル生成マスクの補数に適用した結果の補数になります。mask が省略されると、umask は現在のプロセスのファイル生成マスクの値を標準出力に書き出します。

オプション

ksh88

次のオプションは、ksh88/usr/bin/umaskumask で使用できます。

–S

記号出力を生成します。

デフォルトの出力形式は不定ですが、同じシステム上の以降に umask が呼び出されたときには、以前のファイルモード生成マスクを復元する mask オペランドとして認識されます。

ksh

次のオプションは、ksh で指定できます。

–S

ファイル生成マスクが、8 進数ではなく記号値として設定または使用されます。

オペランド

次のオペランドを指定できます。

マスク

新しいファイルモード生成マスクを指定する文字列。この文字列は chmod(1) マニュアルページで説明されている mode オペランドと同じ方法で扱われます。

記号値の場合、ファイルモード生成マスクの新しい値は、記号文字列が指定しているファイルモードのファイル許可ビット部分の論理補数です。

記号値の許可 op 文字 + は、現在のファイルモード生成マスクとの相対的な関係で解釈されます。+ は、示された許可をマスクからクリアーします。 は、示された許可ビットをマスクに設定します。

ファイル許可ビット以外のファイルモードビットを指定する mode 値の解釈は不定です。

ファイルモード生成マスクは、結果の数値に設定されます。

同じシステム上で以前にオペランドを指定せずに umask を実行した場合のデフォルト出力も、mask オペランドとして認識されます。この方法で得たオペランドは、たとえ 8 進数であっても、無効ではありません。

出力

mask オペランドが省略されると、umask ユーティリティーは、あとで umaskmask オペランドとして使用可能なメッセージを標準出力に書き出します。

–S が指定されると、メッセージは次の形式になります。

"u=%s,g=%s,o=%s\n", owner permissions, group permissions, \
                        other permissions

3 つの値は、{r, w, x} セットの文字の組み合わせです。文字がある場合は、ファイルモード生成マスク内の対応するビットが設定されていないことを示しています。

mask オペランドが指定されると、標準出力には何も出力されません。

使用例 1 umask コマンドの使用

このセクションの例では、/usr/bin/umask ユーティリティーと ksh88 の組み込み umask について説明します。

次のコマンドを見てください。

umask a=rx,ug+w
umask 002

これらのコマンドは、どちらも以降生成されるファイルの S_IWOTH ビットがクリアーされるように、モードマスクを生成します。

前述のコマンドはどちらもモードマスクを設定したあと、umask コマンドを使用してモードマスクの現在の値を書き出すことができます。

example$ umask
0002

出力形式が指定されていませんが、これまでの実装では従来の 8 進整数モードの書式が使用されます。

example$ umask -S
u=rwx,g=rwx,o=rx

この出力はどちらも、以降の umask 呼び出しで mask オペランドとして使用できます。

前述のようにモードマスクが設定されていると想定した場合、

umask g-w

このコマンドは、以降生成されるファイルの S_IWGRP ビットと S_IWOTH ビットがクリアーされるように、モードマスクを設定します。

次のコマンド

umask –-w

このコマンドは、以降生成されるファイルの書き込みビットがクリアーされるように、モードマスクを設定します。なお mask オペランドの rwx、またはハイフン () で始まるものは、オプションと間違われないようにその前に を付ける必要があります。

環境変数

umask の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_COLLATELC_CTYPE、LC_MESSAGES、および NLSPATH。

終了ステータス

次の終了ステータスが返されます。

0

ファイルモード生成マスクが正常に変更された、または mask がなかった。

>0

エラーが発生した。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

/usr/bin/umask、csh、ksh88、sh

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実
標準
standards(5) を参照してください。

ksh

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
流動的

関連項目

chmod(1), csh(1), ksh(1), ksh88(1), sh(1), chmod(2), creat(2), umask(2), profile(4), attributes(5), environ(5), standards(5)