CentOSでumaskの設定値がどのファイルで設定され、どのように使用されているかまとめました。
※umaskの設定については以下の記事も参照。
CentOSのumaskの設定
(1)umaskの値を確認するには?
umaskコマンドで確認する事が出来ます。
実行例)
$ umask
0002
(2)umaskの設定場所
1)シェル環境設定ファイル
①グローバル設定ファイル
/etc/profile、/etc/bashrc、/etc/csh.cshrcなどにumaskの値が設定されています。
・/etc/profileの設定例
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi
②各ユーザー単位にumaskの値を設定する場合
各ユーザーホームディレクトリ内の
.bashrc、.bash_profile、.cshrc、.tcshrcなどのシェル環境設定ファイルに設定します。
2)shadowログイン機能設定ファイル
①設定場所
/etc/login.defs内に下記のように設定されています。
UMASK 077
②shadowログイン機能とは?
・shadow-utilsというRPMパッケージで提供されています。
・下記機能を提供しています。
adduser、chpasswd、groupadd、groupdel、groupmems、groupmod
grpck、grpconv、grpunconv、newusers、pwck、pwconv、pwunconv
useradd、userdel、usermod、vigr、vipw
(3)シェル環境設定のumaskと/etc/login.defsのumaskの違い
デフォルトでは、シェル環境設定では002、/etc/login.defsでは077で定義されています。どちらの設定が使用されるのでしょうか?
●/etc/login.defsのumaskはどこで使用される?
/etc/login.defsのumaskの値は、useraddやnewusersコマンドでユーザーを追加する際に作られるユーザーのホームディレクトリのパーミッション設定に使われます。従ってデフォルト設定ではユーザーホームディレクトリのパーミッションは700になっています。
●シェル環境設定のumaskの値は?
/etc/login.defsのumaskの値はログイン時にも初期値として設定されるようですが、シェル環境設定のumaskの設定値で上書きされているようです。したがって、ユーザー追加時のホームディレクトリのパーミッション以外は、シェル環境設定のumaskの値が使われることになるかと思います。