.htaccessなどのファイルのパーミッション設定方法

はじめに
Web コンテンツの公開用領域(/home/<UTID-NAME>/wwws)に .htaccess や .htpasswd と言ったファイルを置くことでディレクトリ毎にリダイレクトやアクセス制限、カスタムエラーページの表示と言った設定を行うことができます。
便利な反面、これらのファイルについてはパーミッション(アクセス権)の設定に注意が必要です。
他人に悪用されるの防ぐため、必要以上のアクセス権を付与しないように心掛けてください。
なお、例えば .htpasswd_Backup と言ったファイルも第三者に見られてしまう可能性がありますので、このようなファイルも含めてパーミッションの設定状態を管理しなければなりません。

Linux のコマンド操作によるパーミッション設定方法を以下に記載します。
(Windows では WinSCP などでパーミッションを変更することができますが、ここでの説明は省かせていただきます。)

対象ファイルの探し方
.htaccess や .htpasswd と言ったファイルを既に設置している場合、下記のコマンド操作でどこのパスに置いてあるか探すことができます。

$ cd ~/wwws
$ pwd
$ find . -name ".ht*" -type f

例えば、/home/testuser123/wwws/TEST ディレクトリ内に該当のファイルが置いてある場合、下記のような結果が返ってきます。

[ 実行例 ]
・カレントディレクトリの変更
$ cd ~/wwws
$ pwd
/home/testuser123/wwws

・ファイルの検索
$ find . -name ".ht*" -type f
./TEST/.htpasswd
./TEST/.htaccess

パーミッションの変更操作
Linux の chmod コマンドを使って下記の条件を満たすパーミッションに設定します。

  • ファイル所有者に対しては読み込みと書き込みの権限を付与。
  • グループに対しては何の権限も付与しない。
  • その他のユーザには読み込み権だけを付与する。(システム的に必要な設定)
$ cd ~/wwws
$ pwd
$ chmod 0604 ./<PathToHtFile>/.htpasswd
$ chmod 0604 ./<PathToHtFile>/.htaccess

※chmod コマンドに複数のファイルをまとめて指定することもできます。
 例) chmod 0604 ./<PathToHtFile>/.htpasswd ./<PathToHtFile>/.htaccess

以下は、/home/testuser123/wwws/TEST/ ディレクトリ内のファイルに対してパーミッション変更操作を実行した場合の表示です。

[ 実行例 ]
・カレントディレクトリの変更
$ cd ~/wwws
$ pwd
/home/testuser123/wwws

・変更前確認
$ ls -l ./TEST/.ht*
-rwxr-xr-x 1 testuser123 17  3月  2 16:27 ./TEST/.htaccess
-rwxr-xr-x 1 testuser123 13  3月  2 10:22 ./TEST/.htpasswd

・変更操作
$ chmod 0604 ./TEST/.htpasswd
$ chmod 0604 ./TEST/.htaccess

・変更後確認
$ ls -l ./TEST/.ht*
-rw----r-- 1 testuser123 17  3月  2 16:27 ./TEST/.htaccess
-rw----r-- 1 testuser123 13  3月  2 10:22 ./TEST/.htpasswd

パーミッションの設定状態を示す項目が「-rw—-r–」になっていれば変更完了です。