【 umask 】コマンド――ファイル作成時のパーミッションを設定する:Linux基本コマンドTips(325)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ファイルやディレクトリ作成時のパーミッション(アクセス権)を設定する「umask」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ファイルやディレクトリ作成時のパーミッション(アクセス権)を設定する「umask」コマンドです。
umaskコマンドとは?
「umask」はファイルやディレクトリを作成する際のパーミッションを設定するコマンドです。
通常は、各ディストリビューションの管理ポリシーに従ったパーミッションの値がデフォルトで設定されているため、umaskの値をユーザーが変更する必要はあまりないでしょう。
umaskはファイルやディレクトリの新規作成時の設定を変えるコマンドです。既存のファイルやディレクトリのパーミッションを変更する際には「chmod」コマンド(連載第14回)を使用します。パーミッションについては、Linux再入門第9回「ファイルのパーミッション(許可属性)とは?」でも取り上げています。
なお、umaskはbashの内部コマンド(ビルトインコマンド、シェルコマンド)であるため、「man」コマンドではなく、「help」コマンドで詳細を表示できます。
umaskコマンドの書式
umask [オプション] [値]
※[ ]は省略可能な引数を示しています。
umaskの主なオプション
短いオプション | 意味 |
---|---|
-p | 値を指定しなかった場合、現在の設定値を「umask 値」の形式で表示する |
-S | 現在の設定値をシンボルモード(「rwx」などの文字列)で表示する(※1) |
※1 値を指定した場合、現在の設定を指定した値に変更した上で表示する。
現在の設定値を表示する
Linuxでファイルやディレクトリを作成する際、基本的なパーミッションは制限が最も少ない状態になっています。ファイルは「所有者」「グループ」「その他」ともに読み書き(rw)が可能な「666」(rw-rw-rw-)、ディレクトリはさらに実行(x)も可能な「777」(rwxrwxrwx)です。umaskはここに制限を加える形でパーミッションを指定します。
例えば、umaskに「002」(CentOS環境におけるデフォルト設定、※2)を設定した場合、ファイル作成時のパーミッションは「664」(666−002=664)になります。これは、所有者とグループは読み書き可能、その他のユーザーは読み出しのみ可能というパーミッションです(rw-rw-r--)。
同様に、ディレクトリ作成時のパーミッションは「775」(777−002=775)になります(rwxrwxr-x)。
※2 Ubuntu 18.04 LTSの場合は「022」が設定されている。
「umask」を実行すると、現在の設定を表示します(画面1)。設定値を4桁で表示し、1桁目は「0」で固定です(※3)。
※3 画面1ではパーミッションを0〜7の数字4桁で表している。この場合、2〜4桁目が本文中で触れた所有者、グループ、他人に対するパーミッションであり、1桁目は特殊な属性を示す。通常はファイル、ディレクトリともに1桁目に0が設定されている。1桁目が4の場合は「set-user-ID(SUID)」を意味し、2の場合は「set-group-ID(SGID)」となる。SUIDは実行時に所有者の権限を、SGIDは所有グループの権限を引き継ぐという意味だ(応用力”をつけるためのLinux再入門 第11回)。ディレクトリに対して1桁目に1を設定した場合には「削除制限」、ファイルに設定した場合は「STICKY属性」という意味になる。
コマンド実行例
umask
(現在の設定値を表示する)
umaskの値を変更する
Copyright © ITmedia, Inc. All Rights Reserved.