umaskのデフォルト値 (CentOS6.4)

/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は 199 200以上になっているはず。
  • pam_umaskは使っていない。

よって、システムがセットアップされて以降、useradd コマンドで作成された普通のユーザであれば、umask には 002 がセットされる。新規作成するファイルやディレクトリの所有グループが、そのユーザのユーザー名と同じであれば、より多くの権限を与えるのは理に適っている。

umaskでセットする値が 0の場合と 2の場合の違いを以下にメモ

  • umask が 2 の場合(割と安全)
    • ファイル
      • 6 – 2 = 4 つまり「r–」となるので、
        • r : 読み取り可能
        • w : 書き込み不可
        • x : 実行不可
    • ディレクトリ
      • 7 – 2 = 5 つまり「r-x」となるので、
        • r : そのディレクトリを ls できる
        • w : そのディレクトリの中でファイルを作成・消去できない
        • x : そのディレクトリの中のファイルにアクセスできる
  • umask が 0 の場合(安全でない)
    • ファイル
      • 6 – 0 = 6 つまり「rw-」となるので、
        • r : 読み取り可能
        • w : 書き込み可能
        • x : 実行不可
    • ディレクトリ
      • 7 – 0 = 7 つまり「rwx」となるので、
        • r : そのディレクトリを ls できる
        • w : そのディレクトリの中でファイルを作成・消去できる
        • x : そのディレクトリの中のファイルにアクセスできる
Pocket

2 thoughts on “umaskのデフォルト値 (CentOS6.4)

  1. >つまり「ユーザIDが199以上

    「199より大きい」か「200以上」の方が適切かもしれませんね。
    この情報にたどり着いて、とても助かりました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*