Linuxコマンド辞典 umask(ユーザ/グループ管理)
新しくファイル・ディレクトリを作成時点に設定されるマスク値の表示及び変更するumaskコマンドについて解説。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
概要・使用方法
UNIXシステムでは、パーミッションによりアクセス権の制御を行っていますが、この基準となるのがumaskの値です。
umaskコマンドを使用して、ファイルやディレクトリのユーザー所有者及びグループ所有者を変更できます。マスクの値は4桁の8進数値で、ファイルは666(0666)からマスク値を、ディレクトリは777(0777)からマスク値を引いた値がデフォルトのアクセス権として適用されます。コマンドのみの場合は、現在のマスク値が表示されます。
デフォルトの「022」以外を標準umask値にするには、シェル起動ファイル(.bashrc)などに記述します。また、親プロセスでumask値を持っている場合は、子プロセスでumask値が引き継がれます。
書式
$ chown [オプション] [umask値]
-p | umask値を数値で表示する。umask値を指定した場合は設定する。 |
-S | umask値を文字で表示する。umask値を指定した場合は設定する。 |
デフォルトのマスク値
/etc/profileで設定されている。
ディストリビューションごとのumask値
ディストリビューション | 管理者 | 一般ユーザ |
---|---|---|
RHEL | 0022 | 0022 |
CentOS | 0022 | 0022 |
Vine Linux | 0022 | 0022 |
Ubuntu | 0022 | 0002 |
Debian GNU/Linux | 0022 | 0022 |
Plamo Linux | 0022 | 0022 |
マスク値とその効果
マスク値を指定することによりどのような効果があるのかファイルの場合とディレクトリの場合で記載しています。
ファイルの場合
マスク | 効果 |
---|---|
400 | 所有者はファイルを読み取れない |
200 | 所有者はファイルに書き込めない |
100 | 所有者は実効できない |
040 | 所有グループのユーザは読み取れない |
020 | 所有グループのユーザは書き込めない |
010 | 所有者グループのユーザは実効できない |
004 | その他のユーザは読み取れない |
002 | その他のユーザは書き込めない |
001 | その他のユーザは実行できない |
ディレクトリの場合
マスク | 効果 |
---|---|
400 | 所有者は読み取れない |
200 | 所有者は書き込めない |
100 | 所有者はアクセスできない |
040 | 所有グループは読み取れない |
020 | 所有グループは書き込めない |
010 | 所有者グループはアクセスできない |
004 | その他のユーザは読み取れない |
002 | その他のユーザは書き込めない |
001 | その他のユーザは実行できない |
サンプル:現在のマスク値
現在のマスク値が0002であるため、ファイルであれば「0666-0002=0664」となり、ディレクトリであれば「0777-0002=0755」がデフォルトのアクセス権となります。
$ umask
実行結果
[centos@xxx ~]$ umask
0002
[centos@xxx ~]$
サンプル:マスク値の設定
マスク値を0028に設定する。マスク値が0028に設定されるとファイルであれば「0666-0028=0640」(rw-r—–)、ディレクトリは「0777-0028=0750」(rwxr-x—)となる。
$ umask 0028
実行結果
[centos@xxx work]$ umask
0002
[centos@xxx work]$ umask 0027
[centos@xxx work]$ umask
0027
[centos@xxx work]$ mkdir sample
[centos@xxx work]$ ls -l
total 0
drwxr-x--- 2 centos centos 6 Apr 23 22:01 sample #アクセス権がrwxr-x---となる。
[centos@xxx work]$
umaskモードを文字形式で表示する
-Sオプションを使用することで、文字形式で表示することができる。
$ umask -S
u=rwx,g=rwx,o=rx
.bashrcに追加する
/etc/skel/.bashrcに追加するとユーザを追加するたびに設定する手間が省ける。
$ tail -l /etc/skel/.bashrc
umask 002