UNIXの部屋 コマンド検索: umask

TOP UNIXの部屋 コマンド一覧 コマンドマニュアル 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識


検索 :
複数のキーワードを空白で区切ると AND 検索を行います。例:「ファイル 削除」


umask ファイル・ディレクトリ生成マスクの設定。シェルの内部コマンド。

(エディタでも touch コマンドでも何でもいいから)ファイルを作成すると、そのファイルのパーミッションは、普通 644 (rw-r--r--) となるはずである。これはもっともな話で、新しいファイルを作るたびにパーミッションが 666 (rw-rw-rw-) や 777 (rwxrwxrwx) になっていては誰でも書き込めてしまい、いちいち chmod しなくてはならず不便である。このように、新規作成したファイル・ディレクトリのパーミッションを決めるのが、umask である。

umask は、新しくファイルを作成する際に、許可*しない*ビットを示すものである。普通、ファイルの新規作成時はファイルの実行ビット (eXecute) は立てないので、umask が 022 ということは、666 から 022 を引いた 644 というパーミッションで新規ファイルが作られることになる。umask が 002 なら 664 、 umask が 000 なら 666 となる。

umask を設定するには、
% umask 022
などとする。作成したファイルを誰にも見せたくなかったら、
% umask 066
とすればいいし、誰にでも読み書きしてほしかったら
% umask 000
とすればいい(もちろんお勧めはしない)。引数を省略すると、現在の umask の値を表示する。
% umask
22

umask が影響を与えるのは、新規ファイル・ディレクトリの作成時だけであって、既に存在するファイルのパーミッションには全く影響を与えない。また、umask の値は親プロセスから引き継がれるが、プロセスごとに独自の umask を設定することができる。

普通は、~/.login や ~/.cshrc の中に umask 022 などと記述しておき、ログインするたびに自動的に umask が設定されるようにしておく。
>> コマンド chmod *

umask ファイル新規作成時のパーミッションを指定