umask コマンドを使って、新規に作成される全ファイルと全ディレクトリに対してデフォルトのファイルアクセス権を設定できます。たとえば、セキュリティを重視するため、グループのメンバとその他の全ユーザに対しては、自分の所有するディレクトリに関する読み取り権や実行権 (-rwxr-xr-x) (ファイルの場合は (-rw-r--r--)) だけを付与したい場合があります。そのような場合は、新規に作成されるファイルやディレクトリがこのアクセス権で保護されるよう .cshrc ファイルまたは .profile ファイル内で umask を使えます。
chmod コマンドと同様に、umask では数値コードを使ってファイルの絶対アクセス権を表します。ただし、umask で使うコードは、chmod のコードとは異なる方法で計算します。
まず、umask が 000 に設定されている場合は、新規に作成される全ファイルのアクセス権 (読み取り権と書き込み権があり、実行権なし) は次のとおりです。
rw-rw-rw- (モード 666)
そして、新規に作成される全ディレクトリのアクセス権 (読み取り権、書き込み権、実行権の全アクセス権がある) は次のとおりです。
rwxrwxrwx (モード 777)
umask で使う値を決定するには、ファイルに割り当てられている現在のデフォルトアクセス権の値から、設定したいアクセス権の値 (chmod コマンドで指定する値と同じ) を差し引きます。この差し引き後の値を umask コマンドで使います。
たとえば、ファイルのデフォルトモードを 666 (rw-rw-rw-) から 644 (rw-r--r--) に変更する場合は、666 から 644 を差し引いた値の 022 を umask コマンドで指定します。
umask 022 |
chmod コマンドの数値コードと同様に、umask では次の 3 桁の数字を使います。
1 桁目は所有者のアクセス権を制御する。
2 桁目の数字はグループのアクセス権を制御する。
3 桁目の数字はその他の全ユーザのアクセス権を制御する。
数値コードの各桁で設定されるファイルアクセス権を表 10-1 に示します。
表 10-1 umask のアクセス権
umask コード |
アクセス権 |
---|---|
0 |
rwx |
1 |
rw- |
2 |
r-x |
3 |
r-- |
4 |
-wx |
5 |
-w- |
6 |
--x |
7 |
---(アクセス権なし) |
umask コマンドについての詳細は、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。