ファイルやディレクトリ作成時の初期パーミッション設定を変えたい〜umask〜

» 2001年11月14日 00時00分 公開
[木田佳克ITmedia]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 通常、「touch [ファイル名]」などと指定して0バイトのファイルを作成すると、パーミッションは644(rw-r--r--)として作成されるはずだ。作成されるファイルやディレクトリが666(rw-rw-rw-)や777(rwxrwxrwx)であってはすべてのユーザーから書き込みや削除が可能になってしまう。

 このように新規作成されるファイルやディレクトリのパーミッションを制御するのが「umask」である。

 注意しなければならないのは、umaskで設定するのはパーミッションビット(666や777など)そのもののではなく、許可しないビットを指定する点だ。通常、ファイルの新規作成であれば実行ビット (5、eXecute)は必要無いことから、644のビットであればumask指定の場合、666から644を引いて「022」となる。664であれば「002」、666であれば「000」だ。

 umask設定をするには、

$ umask 022

などと指定すればよい。オプションを省略して単にumaskと入力すると、現在のumask値が表示される。

$ umask
002

 通常は、シェルログインの際に実行される「~/.bash_profile」などに「umask 022」などという行を加えておけばよいだろう。新規作成されるファイルやディレクトリに適用される設定のため、既存のファイルには影響を与えない、ということも覚えておこう。

$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
umask 022
export PATH
unset USERNAME

 なお、環境によっては「/etc/profile」に定義されていることもあるため確認しておいたほうがよい。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ