PR

[Linux] ファイル・ディレクトリのパーミッション一括変更(1)

さて、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

→ ということで、次回ファイル・ディレクトリのパーミッションを一括変更する方法を探す

参考文献

コメント