さて、Ubuntu 11.10 とUbuntu Server 10.04 LTS でファイルやディレクトリを作成した時に、異なるパーミッションが設定された。
ファイルやディレクトリを作成した時のデフォルト・パーミッションはどのように決められているのか、ということが気になって調べてみると「umask」というコマンドで確認と設定ができるそうだ。
スポンサードリンク
デフォルト値の確認と設定
設定値の確認
$ umask 0002
$ umask 0022
上が11.10 で下が10.04 のもの。
動作概要
参考文献などによればディレクトリは最大で0777 となり、そこから0022 を引いた値の「0755」、もしくは0002 を引いた「0775」とされるようだ。同様にファイルの場合は0666 が最大となり「0644」もしくは「0664」となるということらしい。
設定値の変更
$ umask 022
コマンドの後に設定したい値を付ければよく、「000」でもよいそうだ。まぁもちろんセキュリティー的には絶望的な気もするが。
変更前
$ umask 0002
変更後
$ umask 0022
ここで問題なのは、すでに存在するファイルやディレクトリには無関係ということ。通常はどうでもよいが、例えばsuExec やsuPHP 環境に移行した際に手動・FTP・SCP などで転送した際に思わぬ面倒が転がり込むことがある。
このようなエラーになる:
SoftException in Application.cpp:249: File "/home/casey/public_html/example.com/index.php" is writeable by group
→ ということで、次回ファイル・ディレクトリのパーミッションを一括変更する方法を探す
コメント