umaskはどこで設定されている?

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の値が使われることになるかと思います。

関連記事の目次

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください