umask コマンドは、新しく作成されたファイルとディレクトリのデフォルトのアクセス権を変更します。新しいオブジェクトごとにこれらのアクセス許可を手動で変更するのではなく、新しいオブジェクトの使用方法を自動的に制御したい場合は、デフォルトのアクセス許可を変更すると便利です。
umask では、8 進数形式を使用してデフォルトのパーミッションを設定します。ただし、設定するアクセス許可を指定する代わりに、デフォルトからマスクまたはクリアするアクセス許可を指定します。たとえば、Linux の非実行ファイルのデフォルトのパーミッションは 666 (rw-rw-rw-) です。所有者にはこれらのアクセス許可を保持させ、グループやその他のユーザーには読み取りアクセスのみを許可する場合は、umask を 022 に設定する必要があります。各番号は次のように順番に説明されています:
- 0 つまり、現在の所有者のアクセス許可をまったくマスクしないでください。つまり、読み取りと書き込みのままにしておく必要があります。
- 2 つまり、グループの権限を 2 でマスクする必要があります。つまり、デフォルト (6) から 2 を引くと 4 になります。グループ メンバーは読み取りアクセスのみを持つようになりました。
- 2 前の番号と同じことを行いますが、他のユーザーに対してです。
CLI で umask コマンドを直接使用して、そのセッションのデフォルトのアクセス許可を設定するか、.bashrc ファイルで各ユーザーのデフォルトのアクセス許可を設定できます。
注意 :デフォルト (666) から減算されるため、umask コマンドは、新しく作成されたファイルに実行ビットを設定することを強制できません。
構文
umask コマンドの構文は次のとおりです。
$ umask {number}
umask コマンドの実行中に以下のエラーが発生した場合:
umask: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:
分布 | コマンド |
---|---|
OS X | brew install bash |
Debian | apt-get install execline |
Ubuntu | apt-get install execline |
アルパイン | apk add bash |
Arch Linux | pacman -S bash |
カリ Linux | apt-get install execline |
CentOS | yum install bash |
Fedora | dnf インストール bash |
Raspbian | apt-get インストール bash |
umask コマンドの例
1. 現在のマスクを 8 進数で表示:
# umask
2. 現在のマスクをシンボリック (人間が読める) モードで表示します。
# umask -S
3. マスクをシンボリックに変更して、すべてのユーザーに読み取り許可を許可します (残りのマスク ビットは変更されません)。
# umask a+r
4. (8 進数を使用して) マスクを設定して、ファイルの所有者のアクセス許可を制限せず、それ以外のすべてのユーザーのすべてのアクセス許可を制限します。
# umask 077