umask コマンドを使って、新規に作成される全ファイルと全ディレクトリに対してデフォルトのファイルアクセス権を設定できます。たとえば、セキュリティを重視するため、グループのメンバとその他の全ユーザに対しては、自分の所有するディレクトリに関する読み取り権や実行権 (-rwxr-xr-x) 、ファイルの場合は (-rw-r--r--) だけを付与したい場合があります。そのような場合は、新規に作成されるファイルやディレクトリがこのアクセス権で保護されるようユーザプロファイルファイル内で umask を使えます。
chmod コマンドと同様に、umask では数値コードを使ってファイルの絶対アクセス権を表します。ただし、umask で使うコードは、chmod のコードとは異なる方法で計算します。
たとえば、umask が 000 に設定されている場合は、新規に作成される全ファイルのアクセス権は次のとおりです (読み取り権と書き込み権があり、実行権なし)。
rw-rw-rw- (mode 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 桁目の数字はその他の全ユーザのアクセス権を制御する。
umask コマンドの数値コードの各桁で設定されるファイルアクセス権を表 10-1 に示します。
表 10–1 umask のアクセス権
umask コード |
設定するアクセス権 |
---|---|
0 |
rwx |
1 |
rw- |
2 |
r-x |
3 |
r-- |
4 |
-wx |
5 |
-w- |
6 |
--x |
7 |
---(アクセス権なし) |
umask コマンドについての詳細は、『manpages section 1 : User Commands を参照してください。