2010年09月08日(水)
サーバー上のディレクトリにパスワードをかけて、ファイルリストを表示する(PC&ネット)
調べれば普通に方法は出てくるものなんだけれど、もの凄い勢いでドハマったんでメモっておく。
1. パスワードをかけたいディレクトリをサーバー上に作る。パーミッションは755(当たり前?)
2. .htaccessによるパスワード認証(1から始めるWeb作成講座さん)
辺りを参考にして、このディレクトリ内に.htaccessファイルをうpする。
3. この時に要注意なのが、
AuthUserFile /home/XXXX/.htpasswd
このパスワードファイルのパスを指定する行。
このパスが間違っていると尋常でない勢いで恐怖の500インターナルサーバーエラーを返されて死亡する。
この1から始める~さんは非常に詳しく書いてくれていて、telnetが可能であればこのディレクトリにcdで入っていき、pwdと打ち込めばここで入力するべきフルパスを表示してくれる。
ウチ(BiG-NET)の場合だと、html~からの指定だとダメで(ルートから指定する必要がある?)これが原因で64回ぐらい死にまくった。
4. .htpasswd ファイルを作成して同じディレクトリにうpする。
これもかなりヤバい箇所。
このテキストファイルは、
ユーザー名:パスワード<改行>
とすればいいのだが、何とこのパスワードはセキュリティ対策の為ユーザー名をキーとしたcryptをかけたものを書く必要がある(素のパスワードは書けない)。
確かにセキュリティは上がると思うけれどギャフン。
こちらさん(その名も.htaccess実践活用術さん)のこの作成ツールがソース共に大変参考になりました。
5. .ht~の2ファイルのパーミッションは604にしておくべきらしい。
6. サーバーの設定によってはルートでファイル一覧表示を抑制している所もある(BiG-NETもそう)。
なので、これを表示できるようにしてやる(もちろんこのディレクトリにindex.htmlは置かない)。
ファイルリストの表示非表示を切り替える.htaccess設定(システマニアさん)
より、この2. の.htaccess内に
Options +Indexes <改行>
(+は無くても可、大文字小文字は区別されない)
を追加しておく。
で後はアクセスしてユーザー名とパスワードを入力すればおk
しかし今回改めて調べてみたんだけれど、ファイルサーバー的な(といっても不特定多数の相手に向けてファイルを供給する目的の事を指してだろうけれど)使い方を禁止しているレンタルサーバーって結構多いのな。
しかもHP容量無制限とか言ってるとこに限ってそういうの(笑)
まあ大容量でアクセス数が凄い事になるようなファイルが上げられたりすると、とんでもないサーバー負荷になるのが目に見えてるから、って事なんだろうけど…。
コメント
やまも ( 2010/09/12 23:27)
いや、ファイルサーバ用途を許可しちゃうと、サーバ負荷よりも単に違法ファイル交換の温床になるので・・・
nyとか出てからは下火になったけど、権利者や警察から連絡が来ると一々対応しないといけないのでその人件費がキツイんですよ。鯖貸し屋としては。
パピコン ( 2010/09/14 02:15)
なるほど~。
さすが本職さんは見方が違いますな。
勉強になりました。
権利者や警察からの要望への対応ってそんなに面倒なのか。