#navi(../)
* ファイル作成時のパーミッションを設定する方法・umaskコマンド [#k091e1b3]
ファイルやディレクトリを新規作成したときに設定されるパーミッションの値を指定する方法を以下に記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* umaskコマンドで現在のマスク値を確認する [#c8780ef7]
umaskコマンドを引数なしで実行し、ファイルやディレクトリを新規作成したときのマスク値を確認してみます。
** CentOS5で実行 [#fe6a75ec]
CentOS5でumaskコマンドを実行したときの出力です。
$ umask
0002
** Ubuntu12.04で実行 [#r97d5cbc]
Ubuntu12.04でumaskコマンドを実行したときの出力です。
$ umask
0002
* umaskの動作確認 [#e0a29472]
上記で調べたumaskのデフォルト値でtouchコマンドを使用して新規にファイルを作成してみます。
$ touch umasktest1
$ ls -l umasktest1
-rw-rw-r-- 1 sakura sakura 0 12月 18 20:03 umasktest1
umaskは、666(-rw-rw-rw-)からumaskで設定された値を引きます。~
したがって、666 - 2 になるので、664(-rw-rw-r--)となります。
* umaskを設定して新規作成時は600にになるようにする [#se7bf226]
umaskを設定してオーナーのみ、読み書き可能とするには、以下のようにします。~
(umask 66でも同様の動作となりました。)
umask 0066
実際に実行した結果を以下に記します。
$ umask 0066
$ umask
0066
$ touch umasktest2
$ ls -l umasktest2
-rw------- 1 sakura sakura 0 12月 18 20:09 umasktest2
上記の動作は、666 - 66となるため、600(-rw------)となります。
* umaskの指定を常に反映したい [#l15b634d]
.bashrcや.bash_profileにumaskの設定を記述しておけば、ユーザがログインするとumaskが有効になります。~
bash以外のシェルを使用している方は、そのシェルに適した設定ファイルを編集してください。
-参考資料~
[[.bashrcと.bash_profileの違い>Linux環境設定/.bashrcと.bash_profileの違い]]
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)