Last Modified : | 06/03 12:48 |
Access : | |
tds mode : | [static,site,cache:on] |
うちの場合 apache が suExec環境のため tDiary の動作は通常ユーザ権限になってから動く。 なのでtDiaryファイルの所有者・パーミッションに関しては「何もしない」
あえて設定するならディレクトリに対しては chmod u=rwx,go=rx <tDiaryディレクトリ> *1 、通常ファイルに対しては chmod u=rw,go=r <tDiaryファイル> *2 に設定する。 データディレクトリは他人に読まれたくないので chmod u=rwx,go= <データディレクトリ> *3 に設定する。
まとめ
chmod u=rwx,go=rx <tDiaryディレクトリ> chmod u=rwx,go= <データディレクトリ>
FreeBSDのportsからインストールされた apache は wwwユーザ/wwwグループで動いているのが普通なので、 wwwグループであることを利用することにするべし。
chmod ug=rwx,o=rx <tDiaryディレクトリ> # グループに対しての書き込み権限を追加 chown -R <ユーザID> <tDiaryディレクトリ> chgrp -R www <tDiaryディレクトリ> chmod ug=rwx,o= <データディレクトリ> # グループに対しての書き込み権限を追加 chown -R <ユーザID> <データディレクトリ> chgrp -R www <データディレクトリ>
フツー 通常ユーザがwwwグループに入っていることは無いため自力で chgrp www することが出来ない。 なので chmod o+rwx ということになる。
↑とパーミッションについて様々考えたけど、とりあえずruby化が先なんじゃないかなとツッコミを入れてみた。
ユーザIDの取得は HOMEOWN=`id -u <ユーザ>`、グループIDの取得は HOMEGRP=`id -g <ユーザ>` で出来るのに、 何でホームディレクトリの取得コマンドがないのじゃー。 と思いつつシェルのマニュアルを眺めていたら、もしや"~ユーザ"を展開するのがスジ? 昔の /bin/sh では出来なかった気がするんだけど…
HOMEOWN=`id -u <ユーザ>` HOMEGRP=`id -g <ユーザ>` HOMEDIRC="~<ユーザ>/"
そろそろ発売の J-SH53。ここまでお手軽になればポスペも常用しそうな気がする。 メガピクセルカメラとも合わせて久々に欲しいと思わせる端末だ。
もう一点、軽く調べた範囲では不明だったが、SDカードのMPEG4動画が再生できるんだったら間違いなく買い。
カラーレーザープリンタもそろそろいいかなーと市価調べたら85000円じゃん。 いきなり買うことになりさう。
タブレットPC用ワコムドライバ。OSの機能とかち合わないような仕組みが追加されているらしい。
2じゃないintuosだとインストールさせてくれなかった。残念。
「スマートツールネットワーク株式会社」 から不正アクセスの件について問い合わせがあった方がもしいらっしゃったら、 無料で相談にお乗りしますので是非ご連絡下さい。
よろしくお願いします _o_
スマートツール ネットワーク 株式会社 がクラッキングをしてきた訳では ありません。念のため。スマートツールネットワーク株式会社をアタックした 誰かがいるらしいです。
資料その1
IP Spoofingとは、IPアドレス偽装攻撃とも呼ばれ、基本的な手法の一つです。 これは、自IPアドレスを相手のIPアドレス等に偽装し攻撃を仕掛けたり、 Firewallを突破するという方法です。 単独で利用する場合、相手のホストがIPアドレスで接続先を制限している場合や、 相手のホストに侵入したとき、logなどに自IPアドレスが残されると困る場合などに使用されました。 この手法が考え出されたときには、このような使用がなされていましたが、 現在ではDoS攻撃に使用するなど、 他の攻撃手法の中で応用されています。
資料その2
Subversionでimportする際、空のディレクトリをimportすることはできない。
# cd /tmp mkdir mytdiary touch mytdiary/README svn import -m'first import' svn://localhost/repos mytdiary trunk/mytdiary rm -rf mytdiary svn checkout svn://localhost/repos/trunk/mytdiary (cd mytdairy; pax -r -w -v . ~/tdiary) # README以外空のディレクトリ情報を移動する rm -rf mytdiary
自分で作った日毎のtdiaryファイルを Subversionリポジトリに投入する。
cd ~/tdiary svn status README # 確認してみる svn add dailyupdate tdiary.conf svn commit -m'first import' # tdiaryシステムが自動的に生成する対象の 2003 と cache ディレクトリは svn 管理から外す # 一度 .cvsignore を作成するとよいらしい echo 2003 > .cvsignore echo cache >> .cvsignore svn propset svn:ignore -F .cvsignore . svn add .cvsignore svn commit -m'add .cvsignore and svn:ignore' .cvsignore svn commit -m'add .cvsignore and svn:ignore' . svn status --verbose # ローカルで保持している情報との差分表示 svn status --show-updates --verbose # リポジトリとの差分表示
svn コマンドを一度実行すると Document and Settings\<ユーザ名>\Application Data\Subversion\ に設定ファイルが生成される。
www.mimori.org:~svn/.ssh/authorized_keys には以下のように ssh-dss の前にコマンドを書いて svnserve がシェルとして実行されるようにしてしまう。
command="/usr/local/bin/svnserve -r /home/svn" ssh-dss AAAA.... (コメント)
適当にパスの通ったところに svnssh.sh
#!/bin/sh exec ssh -l svn $*
Document and Settings\<ユーザ名>\Application Data\Subversion\servers
[groups] sshgroup = *.mimori.org [sshgroup] svn-tunnel-agent = svnssh.sh
…とかいろいろやってみたけど、 最終的にうまくいかず。
CVSの時の :ext: と全く同じ様に自分のユーザ権限で直接リポジトリをいじれるようにしてしまった。
sudo pw groupmod svn -m h # svn グループに自分を追加。 sudo chmod -R g+w /home/svn/repos
Windowsの Document and Settings\<ユーザ名>\Application Data\Subversion\servers
[groups] sshgroup = *.mimori.org [sshgroup] svn-tunnel-agent = ssh
svn checkout svn://www.mimori.org/home/svn/repos/trunk/mytdiary でチェックアウト完了。 *1
チェックアウト、コミットはうまくいったのに svn status --show-updates などのアップデート系コマンドを実行すると
svn: Network connection closed unexpectedly svn: Connection closed unexpectedly
と言われてしまう。ssh経由でなくて svn://プロトコルを直接叩いても状況は変わらず。cmd.exe上で作業しても同じ状況。 どうもWindows版Subversionのネットワーク系バグっぽい。 これはちょっとWindows側はSubversionに移行できんな。
バイナリパッケージでなくて cygwin でコンパイルすると状況が変わるかなあ。明日やってみよう。 それでダメなら当面CVSでtDiary運用だな。いじょ。
やめるつもりが本家チェックするとWindows用 svn-0.23.0 が出てた。 svn-x.yy.z-setup.exe じゃなくて svn-win32-0.23.0.zip を使うとうまくいきそうだぞ。PATHは自分で設定するべし。
結局いかず。なんとなく夏ごろに3G端末にしなきゃいけなくなりそうな雰囲気もあるし。
TABでの補完が、「候補が複数あってもとりあえず出してしまう」仕様で、 rm -rf の後でTABを押した時に危険を感じた。かなーり冷や汗が。 rm の引数では補完しない設定にしたいところ。
.zsh* がとりあえず人のものを持ってきただけで、cygwin用というよりはUNIX用なので整理に向けた資料探し。
設定ファイル評価の順番は /etc/zshenv .zshenv、/etc/zprofile、.zprofile、/etc/zshrc、.zshrc、/etc/zlogin、.zlogin、.zlogout で、zsh -f で起動した場合でも /etc/zshenv だけは評価される。
ここのドキュメントは zsh3.0.x で、現行のは 4.0.x だけど参考にはなる、と思う。暇を見つけて読むべし
LS_COLORSをググったらひっかかった。最初にここの設定を参考にすればよかった。
FreeBSD同様 パッケージでない自力makeしたものは /local に置く方針で。
Cygwin版 Subversionの作成。Cygwinでは gcc, make, autoconf, bison, libtool, libssl-devel, libxml2 をインストールしておく。
SleepyCat から BerkeleyDB 4.0.14 をダウンロード。 *1 以下のスクリプトを利用して構築。完成したら build_unix ディレクトリ内にて make install。
#!/bin/sh cd build_unix env CFLAGS="-O2 -pipe" ../dist/configure \ --prefix=/local make
Neon から Neon-0.23.9 をダウンロード。 以下のスクリプトを利用して構築。完成したら make install。
#!/bin/sh env CFLAGS="-O2 -pipe" ./configure \ --prefix=/local \ --with-ssl \ # --with-socks \ # うまくいかなかった make
以下のスクリプトを利用して構築。
/sh env CFLAGS="-O2 -pipe" ./configure \ --prefix=/local \ --with-neon=/local \ --with-berkeley-db=/local \ --with-zlib \ make
完成したら make install INSTALL=/bin/install。 INSTALL変数を指定しないでデフォルトのインストーラ install-sh を使うと実行ファイルに拡張子 .exe がついているのを認識せず失敗する。
Cygwin で libncurses-devel をインストールしておく。
FreeBSDの /usr/ports/japanese/less で make だけしてパッチ当て済みソースを生成して、Windowsにもってくる。
#!/bin/sh make distclean env CC=gcc CFLAGS="-O2 -pipe" ./configure \ --prefix=/local \ --with-cs-regex make
sshのトンネリングプログラムとして利用 にある方法がどうしてもうまくいかない。クライアント側のserversファイルの記述については例が載っているけど、サーバ側の設定例と 実際の svn コマンドの実行状況がさっぱりなくて難儀。
ssh -L 9000:localhost:8081 svn.openi18n.org
でトンネル作って作業しろと書いてある。
subversionのメーリングリスト でも結構sshの利用についてはトラブルがあるらしく、ぱっと見だけでもかなりの数のメールがある。
There has been a change in the way one uses ra_svn over ssh; see the log message for rev 5754 or the last part of INSTALL. (Basically, you say "svn+ssh://hostname/path" instead of using .subversion/servers to specify tunnel agents for particular hosts.)
今月に入って仕様が変わったのか! どうもサンプルの ~/.subversion/servers からエントリが消えてると思った。
svn checkout svn+ssh://www.mimori.org/home/svn/repos/trunk/ でチェックアウトできた。svn status --show-updates --verbose もちゃんと動く。やた〜。 この指定方法は svnserve を使うわけではないので、CVSにおける -d :ext:<ホスト名>:<リポジトリディレクトリ> と全く同じように使える。
serversファイルを見ると
### ssl-authorities-file File listing known and trusted CAs ### ssl-ignore-unknown-ca Allow untrusted server certificates ### ssl-ignore-invalid-date Allow expired/postdated certificates ### ssl-ignore-host-mismatch Allow certificates for other servers ### ssl-client-cert-file Client certificate file location ### ssl-client-cert-type Can be either 'pem' or 'pkcs12' ### ssl-client-key-file Client Key location, if not in cert ### ssl-client-cert-password Client Key password, if needed.
とSSLのクライアント証明書が指定できるようになったらしい。
explorerに似たインターフェースじゃなくて、 explorerを拡張するプログラムだった。
一昨日メーリングリストに投稿されてた。svn+ssh: はなるべく早く実装したいと思っているそうだ。
現状で httpsプロトコルは扱えるみたい だが証明書をどう指定するのかは不明。
AriaxaFewkrpaaljca Iveaprq Q2
みたいな意味不明文字列が埋まったメールが最近増えたなーと思ってたら、ベイジアンフィルター対策のような気がする。 HTMLメールの最初のパートに意味不明文字列だけ、本文は2番目のパートのHTMLメールみたいな。
ベイジアンフィルター側も単語辞書使って「辞書にない単語は無視」みたいな実装になるんだろうなあ。
真空波動研 + K-Lite Codec Pack
WindosのVC++アプリで別に大したことをする訳でもないのに、コンソールアプリは嫌だなあ *1 という場合は ATL を使うのが軽くてナイスな感じ。
今日 70-218 を受験してきた。ネットワーク系のトラブルシューティングと、ActiveDirectoryのポリシー関係の設計が主な範囲。今までで一番楽勝だった。
Windows 2000トラックのMCSA資格を2003年6月末までに取得いただいた方には、アップグレード試験の支援をいたします。
残るは 70-215(Windows2000Server) だけだー。
tDiaryのテーマもこの形式で閲覧したい。
の漢字キー対応版。個人的には101キーボードドライバで生活してるから関係ないんだけど。
祝!テレビ放映。ヴィトンビルに入らずに済んだよ! ネットって素晴らしい。
ディアボロモンの記憶が、頭の中にどーんと浮かんできてしまって、怖かった〜
Ruby+Amritaで開発されているWikiエンジンHiki。ついに本気で立ち上げたい Wiki 発見。今週末に上げられるかな。
もう5.1-BETA2まで来てたのか。6月中旬までには 5.1R になるかしらん。
Enable building of the mod_dav_svn module if MOD_DAV_SVN is defined. This enables integration of subversion with the Apache 2.0 Web server.
apache2に対する mod_dav_svn 作成自動化キター。
/usr/local/etc/pkgtools.conf に以下の行を追加して、portupgrade -f devel/subversion 実行。
MAKE_ARGS = { 'devel/subversion' => 'WITH_MOD_DAV_SVN=yes' , }
svnユーザで動いている svnserve 経由での update と自分のアカウントで ssh 経由の更新をした後、 svnserve経由のupdateをもう一度しようとしたら「データベース壊れた」メッセージ登場。
ssh経由での更新によって、データベースファイルの一部でgroupの書き込みパーミッション落ちていたのが原因。 自分のアカウントで svnadmin recover の後、chmod g+w で復旧。
scponlyのrsyncオプションをちょっといじって、subversion+ssh のサーバ側シェルを scponly にする実験。
svn+ssh://svn@www.mimori.org/home/svn/repos/trunk とやってもサーバ側のユーザとして svn を渡してくれない *1 ようで失敗。 svn+ssh実行中にサーバ側のコマンドを調べると 'svnserve -t' で受けているのが判明。
apache2付属のWebDAVには無かった、HTTPのREPORTコマンドに対するアクセス権の設定が必要。更新に対しては MKACTIVITY CHECKOUT MERGE も。
subversion不徹底入門 、 WEB+DB PRESS Vol.7 WebDAVバージョニング実装 Subversion も参考にapache2の設定をした。
##### Subversion Repository (WebDAV) <Location /repos> DAV svn SVNPath "/home/svn/repos" SSLRequire %{SSL_CLIENT_I_DN_CN} eq "Hoge CA" \ or %{REMOTE_ADDR} =~ m/^192\.168\.[0-9]+\.[0-9]+$/ \ or %{REMOTE_ADDR} =~ m/^2001:218:45e:[0-9a-f]*:[0-9a-f]*:[0-9a-f] *:[0-9a-f]*:[0-9a-f]*$/ <Limit GET PROPFIND OPTIONS REPORT> # 読み出し可能な条件をここに書く Order allow,deny Allow from all </Limit> <Limit HEAD PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK MKACTIVITY CHECKOUT MERGE> # 書き込み可能な条件をここに書く Order allow,deny Allow from all </Limit> <LimitExcept GET PROPFIND OPTIONS REPORT HEAD PUT POST DELETE PROPPATCH MKCO L COPY MOVE LOCK UNLOCK MKACTIVITY CHECKOUT MERGE> # 知らない HTTP コマンドは全部拒否 Order deny,allow Deny from all </LimitExcept> </Location>
何の設定もせずWindows上のsvn で https://www.mimori.org.../repos/trunk をチェックアウトしようとしたら「client certificate name?」と証明書の在り処を聞いてきた。
クライアント証明書を実際に作って ~/.subversion/servers に以下の設定を追加 *1 。
[groups] mimori = *.mimori.org [mimori] ssl-authorities-file = /home/h/.ssh/ca-bundle.crt # ssl-ignore-unknown-ca Allow untrusted server certificates # ssl-ignore-invalid-date Allow expired/postdated certificates # ssl-ignore-host-mismatch Allow certificates for other servers ssl-client-cert-file = /home/h/.ssh/alex2.example.com.cer ssl-client-cert-type = pem ssl-client-key-file = /home/h/.ssh/alex2.example.com.key # ssl-client-cert-password Client Key password, if needed.
秘密鍵にパスワードを設定してあれば聞いてくるし、設定してなければ何も聞かずやってくれる。
TortoiseSVNでこの手の設定をするところは未だ不明だが、とりあえずダイアログで証明書の場所を聞いてくる。素晴らしい。 これで svn+https 生活決定〜〜
Windowsからのcommitができない。当初はフレッツのMTU問題でひっかかっているのかと思ったが、直結環境でも状況が変わらないので Windows の実装に問題があるっぽい。
このライブラリの特徴は、すべてRuby で記述されていることです。ですから、 UCD-SNMP 等の他のライブラリを必要としません。
素敵。ただし SNMPv1 しか対応していない雰囲気が漂う(未検証)
net-snmpエージェント上げるときはなるべく SNMPv1拒否で設定してるけど、実際ルータとかの情報得る時にはSNMPv1の方が多いんだよなあ。
$Rev$みたいなキーワード置換をするためには、svn:keyword 属性を設定する必要がある。
ファイルの実行属性は svn:executable に保存されている。chmod -x <somefile> に相当するコマンドは svn propdel svn:executable <somefile>
こっちの日記は5月いっぱいで終了予定です
PC9801なWebサーバが今までファイアウォールで隔離していたのが、ネットワーク構成が変わって ssh で直接入れる構成になってさすがにOSのアップグレードしないとまずかろう。 と思いつつPentium133MHzで1.6GBのHDDと厳しいマシンリソース。
PCATアーキテクチャ上でPC98アーキテクチャのクロスコンパイルをするスクリプトを作って、別のマシンでコンパイルしてみる。
#!/bin/sh TARGET=pc98 export TARGET TARGET_ARCH=i386 export TARGET_ARCH make buildworld make buildkernel
一応通ったけど buildworldの結果を、NFSマウントして installworld するという目論見に失敗。
遅いPC98からコンパイラはdistccで他のマシンを利用してみる。/etc/make.conf に以下の行を追加
CC="/usr/local/bin/distcc cc" CXX="/usr/local/bin/distcc cc"
buildworld を実行させるためのスクリプト:
#!/bin/sh DISTCC_HOSTS="10.0.0.888 10.0.0.999" export DISTCC_HOSTS TARGET=pc98 export TARGET TARGET_ARCH=i386 export TARGET_ARCH date make -j2 buildworld date make -j2 buildkernel date
distcc: command not found というエラーでうまくいかないなあ。apacheのコンパイルを ./configure から始めるんならうまくいくのだが。
FreeBSDでのALTQについての言及もあるので、パケットフィルタリング+帯域制限を ipfilter のような書式で書きたくなったら 採用してみるのもいいかも。
cvsupしたらスケジュール通りRELEASE_5_1_0 タグが打たれてた。5.1Rまでカウントダウン…ていうかアナウンス前に5.1Rにしてみるか。
…と思ったらportsにしか打たれてないや。うにゃ。
メモ
「サーバー側のデータ アクセス」に接続文字列のサンプルがある。
server=(local)\NetSDK;database=pubs;Trusted_Connection=yes
SQL接続文字列で、信頼関係接続の利用は Trusted_Connection=yes であったか。
6月以降はtDiaryにトラブルがない限り更新しない予定です。