utte

umask 新しく作るファイルの標準の権限を決める値を表示・設定する

umask [-S] [マスク]

試してみる

主なオプション

-Sマスクではなく、許可される権限を u=rwx,g=rx,o=rx のような記号で表示する
マスク8進数で指定する(例 022)。指定したビットの権限が取り除かれる

解説

マスクの意味

umask は、新しく作るファイルやディレクトリの権限から「取り除く権限」を表す値です。基本の権限から、マスクで指定した分を除いたものが実際の権限になります。

マスクが 022 のとき、ファイルは 666 から 022 を除いた 644、ディレクトリは 777 から 022 を除いた 755 になります。マスクが 077 なら、ファイルは 600、ディレクトリは 700 です。

引き算ではなくビットの除去

実際には、数値の引き算ではなく、マスクのビットが立っている権限を取り除く動作です。ファイルの基本が 666 なので、マスクが 002 でもファイルは 664 になり、実行権限は決して付きません。

設定の範囲と永続化

umask は、そのシェル(とそこから起動するプロセス)だけに有効です。ログインのたびに適用したいときは、~/.bashrc や /etc/profile などに umask 022 のように書きます。

シェルの組み込みコマンド

umask は bash の組み込みコマンドです。type umask で、組み込みであることを確認できます。

関連するコマンド

LinuC 101の出題範囲