Sakura Internet でのディレクトリ認証

2011.03.20 14:02
 Apache自体をいじれないレンタルサーバーは設定が面倒くさいです。Root権限はお値段高いので仕方ありませんが、それでも尚Basic認証の設定は各ユーザーレベルで設定が可能になっています。(試しにDigest認証のコマンドを叩いてみたら、そんなコマンドありませんと言われたのでたぶんサポートしていないのだと思います。)
Basic認証の設定方法はサポートページにかかれていますが、もうちょっとわかりやすく解説。
 SSHが使用できることが前提になっていますのでご注意。これが使えないとサーバー操作がいろいろと不便なのでサーバー契約&初期設定時にSSHを導入しておくことをおすすめします。

パスワードファイルの作成

1. SSH接続でログイン
$ ssh -p 22 <ユーザー名>@<初期ドメイン>
(例)$ ssh -p 22 user@user.sakura.ne.jp
で接続可能です。パスワードはサーバー設定時のものです。Sakuraはデフォルトのポート22を使っているようです。認証が終わったら大抵は自分のルートディレクトリに入っているかと思います。

2. 一応場所を確認。
%pwd
/home/user
3.ディレクトリ内も一応確認
%ls
MailBox        namazu-template    webdav
db        sblo_files    www

4. パスワードファイルを作成する場所は、www(公開ディレクトリ)より上位に作ってください。一応隠しファイルにはなっていますが、公開しない方が無難だと思います。またファイルをいろいろ作ってゆくと煩雑になるので、それ専用のディレクトリを作成しておくとよいと思います。ここではsystemというディレクトリを作成しました。
%mkdir system
%ls
MailBox        namazu-template    system        www
db        sblo_files    webdav
5. 新しく作成したディレクトリに移動してから作業開始
%cd system/
6. パスワードファイルを作成します。htpasswdはパスワードファイルを作成するコマンドです。初めて作成する場合は、オプションの-cが必要です。二回目以降は-cは必要ありません。パスワードファイルのファイル名は何でもいいのですが、ここれは.basic_passwdとしました。公開ディレクトリじゃない場所でも一応隠しファイルで作成します。ユーザー名はuser1としておきます。
%<htpasswdコマンド> <オプション-c> <パスワードファイル名> <ユーザー名>
%htpasswd -c .basic_passwd user1
New password:
Re-type new password:
Adding password for user user1
コマンドを実行するとパスワードを聞かれるので2回パスワードを打って完了です。これで初期ユーザーの設定が完了します。

Basic認証の作成

1. 認証機能を利用したいディレクトリに移動します。そのディレクトリ直下に.htaccessファイルを作成するとBasic認証が機能するようになります。.htaccessファイルには以下のように書きます。
AuthUserFile /home/user/system/.basic_passwd
AuthGroupFile /dev/null
AuthName "Password input here !"
AuthType Basic
require valid-user
 確かなことはちゃんと試していないのですが、最初にhtaccess.txtというファイルを作成してから上記を書き込み、保存してから、.htaccessにファイル名変更しないとダメかもしれません。コマンド通の人はご自由に。
AuthUserFile /home/user/system/.basic_passwd
 パスワードファイルを作成したディレクトリを絶対パスで指定します。つまり複数のディレクトリの認証機能をこのパスワードファイルから呼び出すことができるというわけです。これは結構便利。
AuthGroupFile /dev/null
 /dev/nullという特殊なディバイスを指定してやります。このファイルは、ゴミ箱に似たファイルで、どこかのファイルを指定してやらないとダメなんだけど特にどこを指定する必要もない時はこの特殊なファイルパスを指定してやることがままあるんです。
AuthName "Password input here !"
 ここは適当に。認証ダイアログが現れたときに表示するメッセージです。
AuthType Basic
 当然Basicを指定します。前述のようにDigestはサポートしていないようなので。
require valid-user
 パスワードファイルユーザーを認証の対象にする時は、valid-userと書きます。特定のユーザーのみ指定する際はコンマで区切ってそのユーザーを複数書いても大丈夫です。

これで設定完了。認証機能をかけたディレクトリにURLアクセスしてユーザー名パスワードを入力して入室します。

ユーザーの追加、パスワードの変更、ユーザーの削除など

 先ほどのhtpasswdという便利なコマンドを利用していろいろできます。

ユーザーの追加

%htpasswd <パスワードファイル> <ユーザー名>
(例)%htpasswd .basic_passwd user2
またパスワードを2回聞かれますので、それを入力して追加完了です。
%htpasswd .basic_passwd user2
New password:
Re-type new password:
Adding password for user user2

パスワードの変更

%htpasswd <パスワードファイル> <ユーザー名>
(例)%htpasswd .basic_passwd user2
%htpasswd .basic_passwd user2
New password:
Re-type new password:
Updating password for user user2
またパスワードを2回聞かれますので、それを入力してパスワードの変更です。既存のユーザーを追加でもって上書きする感じです。

ユーザーの削除

 ユーザーの削除はそれ専用のコマンドがあるんだかないんだかわかりませんが、ファイルの行を削除してしまうのが早いです。Sakuraだとviが使えるのでそれで編集します。viエディタの使い方は面倒なので割愛。(しかしSakuraはvimも入っていないんですかね。今度要望をメールしてみようと思います。vimの方が圧倒的に使いやすいし。)
%vi .basic_passwd
user1:A8s.UxlZIQ5xI
user2:oZB7m25ov4TMo
という風にして削除したいユーザーの行を削除して保存します。









プロフィール



  • Name :: 山上オサム ♂(39)
  • Hobby :: 武術
  • Work :: Web Designer