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

CentOSでumaskの設定がどのファイルで設定され、どのように使用されているかまとめました。

(1)umaskの値を確認するには?
 
umaskコマンドで確認する事が出来ます。
 
デフォルトでは、”002″や”022″が設定されているかと思いますが、自分が作成したファイルやディレクトリが他のユーザー(グループも含め)によってアクセスできないようにするには、umaskの設定を077にします。
 
(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の値が使われることになるかと思います。

関連記事の目次

コメントを残す

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