UNIX/Linuxの部屋 コマンド:umask

クラウドサービス徹底比較 AWS・Azure・GCP を比べてみました! 読んでください!(2017/08/31 更新)

※空白区切りで AND 検索 (例:「ファイル 削除」)

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

umask は、新規作成するファイル・ディレクトリのパーミッションを決めるための値で、umask コマンドを使うと umask 値を表示・設定することができる。具体的には、ファイル・ディレクトリを新規作成する際に、パーミッションについて許可*しない*ビットを指示するものである。

例えば、ファイル作成時には 666 というパーミッションを作ろうとするが、umask が 022 である場合、666 から 022 を引いた 644 というパーミッションで新規ファイルが作られることになる。

umask コマンドの基本的な使い方
umask を設定するには、
% umask 022
などとする。作成したファイルを誰にも見せたくなかったら、
% umask 066
とすればいいし、誰にでも読み書きしてほしかったら
% umask 000
とすればいい (もちろんお勧めはしない)。

引数を省略すると、現在の umask の値を表示する。
% umask
22
→ csh・tcsh の場合、22 という形式。
% umask
0022
→ sh・bash の場合、0022 となるようだ。
% umask -S
u=rwx,g=rx,o=rx
→ sh・bash の場合、-S でシンボリックな umask 値を表示する。

umask 値を何にすべきか
umask 値を何にすべきか、002・022 など、どれがよいか。それは、そのマシンのグループ設定ポリシーによる。

1桁目は自分自身のパーミッションなので、0 でよい。
2桁目はグループのパーミッション。グループには誰が属しているか、その人たちに見えてよいか、更新できてよいか、で決めるとよい。
3桁目はその他 (other) のパーミッション。一般的には誰でも更新可能というのは危険すぎるので、w は落とすべき。となると umask 値は 6 (---) か 2 (r--) が妥当だろう。

典型的な umask 値一覧
以下、典型的な umask 値を示す。新規ファイル作成は touch、新規ディレクトリ作成は mkdir コマンドで試してみてほしい。

ファイルの新規作成時:
  • umask が 000 なら新規ファイルのパーミッションは 666 (rw-rw-rw-)
  • umask が 002 なら新規ファイルのパーミッションは 664 (rw-rw-r--)
  • umask が 020 なら新規ファイルのパーミッションは 646 (rw-r--rw-)
  • umask が 022 なら新規ファイルのパーミッションは 644 (rw-r--r--)
  • umask が 060 なら新規ファイルのパーミッションは 606 (rw----rw-)
  • umask が 066 なら新規ファイルのパーミッションは 600 (rw-------)

ディレクトリの新規作成時:
  • umask が 000 なら新規ディレクトリのパーミッションは 777 (rwxrwxrwx)
  • umask が 002 なら新規ディレクトリのパーミッションは 775 (rwxrwxr-x)
  • umask が 020 なら新規ディレクトリのパーミッションは 755 (rwxr-xrwx)
  • umask が 022 なら新規ディレクトリのパーミッションは 755 (rwxr-xr-x)
  • umask が 060 なら新規ディレクトリのパーミッションは 707 (rwx---rwx)
  • umask が 066 なら新規ディレクトリのパーミッションは 700 (rwx------)

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

普通は、~/.login や ~/.cshrc の中に umask 022 などと記述しておき、ログインするたびに自動的に umask が設定されるようにしておく。
>> Linuxオンラインマニュアル(man) Linux umask(2)
>> Solaris10オンラインマニュアル(man) Solaris10 umask(1)

関数 umask ファイル新規作成時のパーミッションを指定するシステムコール



頑張って書いたおすすめコンテンツ!
クラウドサービス徹底比較・徹底解説