tracとSVNのユーザアカウントを一元管理する
同じhtpasswdを見させる、という方法でもいいんだが、管理対象が増えると面倒なのでmod_auth_pamとmod_auth_sys_groupでサーバ上のアカウントを使ってやってみる。
まずSVN用ユーザグループ(リポジトリごとに分けるとなお便利)を作り、SVNにはsvn+sshでアクセスする。
ちなみにMac用SVNクライアントのSCPluginはdsaでパス無しログインできるようにしておくとsvn+sshを使える。
次に、mod_auth_pamとmod_auth_sys_groupでtracのログインページに同じくSVN用グループを許可する認証をかける。
認証モジュールはロード順に適用されるので、最初にauth_basicをロードしておき、「AuthBasicAuthoritative off」で認証失敗時は次の認証モジュールへ移るよう設定しておけばhtpasswdも同時に使える。(ユーザ多い環境でhtpsswdが安全かはさておき)
ただし、mod_auth_sys_groupは/etc/groupへの読み込み権限を要求するので、apacheの実行ユーザをgroupグループあたりに追加する必要がある。
mod_auth_pamはすでに開発が停止しており(たぶん)、サーバのアカウントを使うならMod_Authnz_Externalをpwauth使うべきだがubuntuにはpwauthが入っていないっぽい。mod_authnz_ldapもあるので、何ならこっちを使うのがいいか。
どの方法にしてもユーザアカウント情報を使うのであればSSLかけるべき。オレオレ証明書でも平文よりはマシ。Digest認証ならモアベター。
svn+sshへの移行
サーバマシンも変更するので、まず旧リポジトリのダンプをとっておく。
新リポジトリを作る時、1.5系のリポジトリは1.4から操作できないので --pre-1.5-compatible オプションをつけておく。
svnadmin dump /home/svn/hogehoge > hogehoge.dump ファイルをコピーしたら svnadmin create /var/lib/svn/hogehoge --pre-1.5-compatible svnadmin load /var/lib/svn/hogehoge < hogehoge.dump
svn+sshにする場合、リポジトリのファイルへの書き込み権限を各ユーザが持たなければいけない。
svnグループを作ってユーザを追加、リポジトリのグループをsvn変更しグループへの書き込み権限を加える。
chgrp svn -R /var/lib/svn/hogehoge find /var/lib/svn/hogehoge -perm -u+w -exec chmod g+w {} \;
これはまとめてシェルスクリプトにしておくと便利かも(svnadminにグループ設定のオプションとか無いのかね?)
#!/bin/sh svnadmin create $1 --pre-1.5-compatible chgrp -R svn $1 find $1 -perm -u+w -exec chmod g+w {} \;
Apacheからも公開だけはするので、以下のように設定。
deny from all
MacPorts1.7とGTKでの日本語問題
1.7入れてfreecivとかやろうとしたら日本語が出ない。1.7のせいではなくて
http://osx.miko.org/index.php/Beginning_OS_X_10.5/%E9%81%8B%E7%94%A8%E7%B7%A8
ということらしい。
もはや懐かしのアレ
ネットで話題の図書館系ブロガーid:min2-flyの人気に乗ずるため偽春菜でがまじゃんぱー先生を作ってみた
作りはじめてから気づいたのだが、俺図書館ネタなんて思いつかねーよ…
hikiに閲覧に認証が必要なページの作成機能を追加
hiki/command.rb#cmd_view最終行でgenerate_page( data )を呼ぶ前に
if not @plugin.auth? and @db.get_attribute(@p, :keyword).include? 'auth' data[:body] = "Please Login" end
とする。認証させたいページのキーワードに"auth"を指定すると、ログインしていなければ見れなくなる。(edit_userを使わない場合は誰でも認証済み扱いなので注意)
追記:
この方法ではquote_page等のページデータを直接ロードするプラグインで回避できてしまう。ので、それがいやなら
という感じかな。
あと、編集なんかの権限は command.rb#dispatch メソッド中でチェックされている。フッタ・ヘッダなんかも見せたくない場合は"if @cmd == 'edit'"の直前に
if @cmd == 'view' and not @plugin.auth? and @db.get_attribute(@p, :keyword).include? 'auth' raise PermissionError, 'Permission denied' end
という感じにするといいかも。
newsプラグイン改の改良(できた)
はいどうも、attachプラグイン参考ではなくて、auth?でチェックしてわけました。edit_userと併用し、hikiconf.rbで"@options['news2.auth'] = true"って書くと認証されてないユーザはニュース投稿が出来ません。やったね。
http://www.open.esys.tsukuba.ac.jp/~kskeil/cgi-bin/hiki-0.8.7/?news
あとあれか、hikiのUsersMLでもあった(コメントくれた人と同一人物な気がするが)一覧から削除と閲覧制限な。俺も欲しい。あとテーブルがCSVで書きたい。
さらに言えばデフォルトのテーマは今イチなので使いやすい奴を別に作った方がいいかとか色々出てくるよね。
そういや出欠プラグインの新しいのを作ったんだが、以前のものと統合できないか迷う。しかし実現するとだんだんwikiから離れてくよなぁとか。
newsプラグイン改の改良
こんな意見(http://d.hatena.ne.jp/kskeill/20070808#c1223045699)をもらいましたので(もう三週間も前だよ)、今度attachプラグインをパクって実装してみようと思います。