/etc/profile に以下の記述がある。
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
つまり「ユーザIDが 199 200 以上で、且つユーザ名とプライマリーグループ名が同じ場合」は 002 がセットされ、そうでない場合は 022 がセットされる。
CentOS6.4の場合、関連する設定は以下となっている。
- /etc/login.defs 内で「USERGROUPS_ENAB yes 」となっているため、ユーザが作成される時には同名のグループも作成され、そのユーザのプライマリーグループとなる。
- /etc/login.defs 内で、「UID_MIN 500」「UID_MAX 60000」となっているため、普通のユーザのユーザIDは
199200以上になっているはず。 - pam_umaskは使っていない。
よって、システムがセットアップされて以降、useradd コマンドで作成された普通のユーザであれば、umask には 002 がセットされる。新規作成するファイルやディレクトリの所有グループが、そのユーザのユーザー名と同じであれば、より多くの権限を与えるのは理に適っている。
umaskでセットする値が 0の場合と 2の場合の違いを以下にメモ
- umask が 2 の場合(割と安全)
- ファイル
- 6 – 2 = 4 つまり「r–」となるので、
- r : 読み取り可能
- w : 書き込み不可
- x : 実行不可
- 6 – 2 = 4 つまり「r–」となるので、
- ディレクトリ
- 7 – 2 = 5 つまり「r-x」となるので、
- r : そのディレクトリを ls できる
- w : そのディレクトリの中でファイルを作成・消去できない
- x : そのディレクトリの中のファイルにアクセスできる
- 7 – 2 = 5 つまり「r-x」となるので、
- ファイル
- umask が 0 の場合(安全でない)
- ファイル
- 6 – 0 = 6 つまり「rw-」となるので、
- r : 読み取り可能
- w : 書き込み可能
- x : 実行不可
- 6 – 0 = 6 つまり「rw-」となるので、
- ディレクトリ
- 7 – 0 = 7 つまり「rwx」となるので、
- r : そのディレクトリを ls できる
- w : そのディレクトリの中でファイルを作成・消去できる
- x : そのディレクトリの中のファイルにアクセスできる
- 7 – 0 = 7 つまり「rwx」となるので、
- ファイル
>つまり「ユーザIDが199以上
「199より大きい」か「200以上」の方が適切かもしれませんね。
この情報にたどり着いて、とても助かりました!
ご指摘ありがとうございました。
修正しました!