Mimori's Algorithms Diary

Last Modified : 06/03 12:48
Access :
tds mode : [static,site,cache:on]

2003/05/20 (Tue)

#1 6168歩

2003/05/21 (Wed)

#1 tDiaryファイルのパーミッション設定

うちの場合 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=  <データディレクトリ>

@ suExec環境でなく、インストール作業を root がやる場合

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 <データディレクトリ>

@ suExec環境でなく、通常ユーザがやる場合

フツー 通常ユーザがwwwグループに入っていることは無いため自力で chgrp www することが出来ない。 なので chmod o+rwx ということになる。

@ これが問題なければ、send-prするつもり

↑とパーミッションについて様々考えたけど、とりあえずruby化が先なんじゃないかなとツッコミを入れてみた。

ユーザIDの取得は HOMEOWN=`id -u <ユーザ>`、グループIDの取得は HOMEGRP=`id -g <ユーザ>` で出来るのに、 何でホームディレクトリの取得コマンドがないのじゃー。 と思いつつシェルのマニュアルを眺めていたら、もしや"~ユーザ"を展開するのがスジ? 昔の /bin/sh では出来なかった気がするんだけど…

HOMEOWN=`id -u <ユーザ>`
HOMEGRP=`id -g <ユーザ>`
HOMEDIRC="~<ユーザ>/"

*1:いわゆる chmod 755 を分かりやすく? 書いてみた
*2:いわゆる chmod 644
*3:いわゆる chmod 700

#2 8140歩

2003/05/22 (Thu)

#1 メールアプリ「ケータイポストペット」がJ-SH53向けに登場

そろそろ発売の J-SH53。ここまでお手軽になればポスペも常用しそうな気がする。 メガピクセルカメラとも合わせて久々に欲しいと思わせる端末だ。

もう一点、軽く調べた範囲では不明だったが、SDカードのMPEG4動画が再生できるんだったら間違いなく買い。

#2 LBP-2410

カラーレーザープリンタもそろそろいいかなーと市価調べたら85000円じゃん。 いきなり買うことになりさう。

#3 Enhanced Graphics Driver for Wacom Penabled Tablet PCs

タブレットPC用ワコムドライバ。OSの機能とかち合わないような仕組みが追加されているらしい。

2じゃないintuosだとインストールさせてくれなかった。残念。

#4 スマートツールネットワーク株式会社

「スマートツールネットワーク株式会社」 から不正アクセスの件について問い合わせがあった方がもしいらっしゃったら、 無料で相談にお乗りしますので是非ご連絡下さい。

よろしくお願いします _o_

スマートツール ネットワーク 株式会社 クラッキングをしてきた訳では ありません。念のため。スマートツールネットワーク株式会社をアタックした 誰かがいるらしいです。

@ IP Spoofing

資料その1

IP Spoofingとは、IPアドレス偽装攻撃とも呼ばれ、基本的な手法の一つです。 これは、自IPアドレスを相手のIPアドレス等に偽装し攻撃を仕掛けたり、 Firewallを突破するという方法です。 単独で利用する場合、相手のホストがIPアドレスで接続先を制限している場合や、 相手のホストに侵入したとき、logなどに自IPアドレスが残されると困る場合などに使用されました。 この手法が考え出されたときには、このような使用がなされていましたが、 現在ではDoS攻撃に使用するなど、 他の攻撃手法の中で応用されています。

@ NTにおけるIPソースアドレス詐称

資料その2

#5 Subversion

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 # リポジトリとの差分表示

@ WindowsでSubversion-0.22.2-setup(失敗)

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

…とかいろいろやってみたけど、 最終的にうまくいかず

@ WindowsでSubversion-0.22.2-setup(成功しかけてやっぱり失敗)

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運用だな。いじょ。

@ Subversion File Shareing

やめるつもりが本家チェックするとWindows用 svn-0.23.0 が出てた。 svn-x.yy.z-setup.exe じゃなくて svn-win32-0.23.0.zip を使うとうまくいきそうだぞ。PATHは自分で設定するべし。


*1:ssh-agent 環境で作業しているのでパスワードは聞かれない

#6 8142歩

2003/05/23 (Fri)

#1 J-SH53 先行発売

結局いかず。なんとなく夏ごろに3G端末にしなきゃいけなくなりそうな雰囲気もあるし。

#2 zsh その後

TABでの補完が、「候補が複数あってもとりあえず出してしまう」仕様で、 rm -rf の後でTABを押した時に危険を感じた。かなーり冷や汗が。 rm の引数では補完しない設定にしたいところ。

@ zshのおぼえがき (3)

.zsh* がとりあえず人のものを持ってきただけで、cygwin用というよりはUNIX用なので整理に向けた資料探し。

設定ファイル評価の順番は /etc/zshenv .zshenv、/etc/zprofile、.zprofile、/etc/zshrc、.zshrc、/etc/zlogin、.zlogin、.zlogout で、zsh -f で起動した場合でも /etc/zshenv だけは評価される。

@ zsh に関するドキュメント(翻訳)

ここのドキュメントは zsh3.0.x で、現行のは 4.0.x だけど参考にはなる、と思う。暇を見つけて読むべし

@ zsh カスタマイズ(娘々日記)

LS_COLORSをググったらひっかかった。最初にここの設定を参考にすればよかった。

#3 Subversion on Cygwin

FreeBSD同様 パッケージでない自力makeしたものは /local に置く方針で。

Cygwin版 Subversionの作成。Cygwinでは gcc, make, autoconf, bison, libtool, libssl-devel, libxml2 をインストールしておく。

@ BerkeleyDB 4.0.14 の作成

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-0.23.9

Neon から Neon-0.23.9 をダウンロード。 以下のスクリプトを利用して構築。完成したら make install。

#!/bin/sh
env CFLAGS="-O2 -pipe" ./configure \
  --prefix=/local \
  --with-ssl \

#   --with-socks \ # うまくいかなかった
make

@ Subversion-0.23.0

以下のスクリプトを利用して構築。

/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 がついているのを認識せず失敗する。


*1: FreeBSDのportsでSubversionを作っていれば /usr/ports/distfiles/bdb/ にソースがある

#4 jless on Cygwin

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

#5 Subversion + ssh

sshのトンネリングプログラムとして利用 にある方法がどうしてもうまくいかない。クライアント側のserversファイルの記述については例が載っているけど、サーバ側の設定例と 実際の svn コマンドの実行状況がさっぱりなくて難儀。

OpenI18N IIIMF project だと

ssh -L 9000:localhost:8081 svn.openi18n.org

でトンネル作って作業しろと書いてある。

subversionのメーリングリスト でも結構sshの利用についてはトラブルがあるらしく、ぱっと見だけでもかなりの数のメールがある。

@ Re: ra_svn over ssh broken. (subversionメーリングリスト)

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:<ホスト名>:<リポジトリディレクトリ> と全く同じように使える。

@ SSL証明書

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のクライアント証明書が指定できるようになったらしい。

#6 TortoiseSVN

explorerに似たインターフェースじゃなくて、 explorerを拡張するプログラムだった。

@ Is new SVN+SSH repository browsing supported?

一昨日メーリングリストに投稿されてた。svn+ssh: はなるべく早く実装したいと思っているそうだ。

現状で httpsプロトコルは扱えるみたい だが証明書をどう指定するのかは不明。

#7 spam発信側のベイジアンフィルター対策

AriaxaFewkrpaaljca
Iveaprq
Q2

みたいな意味不明文字列が埋まったメールが最近増えたなーと思ってたら、ベイジアンフィルター対策のような気がする。 HTMLメールの最初のパートに意味不明文字列だけ、本文は2番目のパートのHTMLメールみたいな。

ベイジアンフィルター側も単語辞書使って「辞書にない単語は無視」みたいな実装になるんだろうなあ。

#8 DivX再生環境構築

真空波動研 + K-Lite Codec Pack

#9 ATL 3.0 ウィンドウ クラス: 入門

WindosのVC++アプリで別に大したことをする訳でもないのに、コンソールアプリは嫌だなあ *1 という場合は ATL を使うのが軽くてナイスな感じ。


*1: cmdの黒い画面は顧客に激しく嫌われる傾向あり

#10 MCSA on Microsoft Windows 2000 Server

今日 70-218 を受験してきた。ネットワーク系のトラブルシューティングと、ActiveDirectoryのポリシー関係の設計が主な範囲。今までで一番楽勝だった。

Windows 2000トラックのMCSA資格を2003年6月末までに取得いただいた方には、アップグレード試験の支援をいたします。

残るは 70-215(Windows2000Server) だけだー。

#11 CSS でイケてるデザインサイトリンク集(サムネイル版)

tDiaryのテーマもこの形式で閲覧したい。

#12 Ultr@VNC Release Candidate 1.07

の漢字キー対応版。個人的には101キーボードドライバで生活してるから関係ないんだけど。

#13 SUPERFLAT MONOGRAM

祝!テレビ放映。ヴィトンビルに入らずに済んだよ! ネットって素晴らしい。

ディアボロモンの記憶が、頭の中にどーんと浮かんできてしまって、怖かった〜

#14 Hikiトップページ

Ruby+Amritaで開発されているWikiエンジンHiki。ついに本気で立ち上げたい Wiki 発見。今週末に上げられるかな。

#15 FreeBSD 5.1 Release Process

もう5.1-BETA2まで来てたのか。6月中旬までには 5.1R になるかしらん。

#16 7948歩

2003/05/24 (Sat)

#1 [FreeBSD] subversion-0.23.1_1

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' ,
  }

#2 10169歩

2003/05/25 (Sun)

#1 Subversion リポジトリの復旧

svnユーザで動いている svnserve 経由での update と自分のアカウントで ssh 経由の更新をした後、 svnserve経由のupdateをもう一度しようとしたら「データベース壊れた」メッセージ登場。

ssh経由での更新によって、データベースファイルの一部でgroupの書き込みパーミッション落ちていたのが原因。 自分のアカウントで svnadmin recover の後、chmod g+w で復旧。

#2 subversion + ssh + scponly (失敗)

scponlyのrsyncオプションをちょっといじって、subversion+ssh のサーバ側シェルを scponly にする実験。

svn+ssh://svn@www.mimori.org/home/svn/repos/trunk とやってもサーバ側のユーザとして svn を渡してくれない *1 ようで失敗。 svn+ssh実行中にサーバ側のコマンドを調べると 'svnserve -t' で受けているのが判明。


*1:ssh -l svn でログインしてくれない

#3 Subversion + apache2

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 生活決定〜〜

@ svn+https で commit 失敗

Windowsからのcommitができない。当初はフレッツのMTU問題でひっかかっているのかと思ったが、直結環境でも状況が変わらないので Windows の実装に問題があるっぽい。


*1:証明書は暗号化ファイルシステムにしている関係で .ssh に置いている

#4 Rubyで超お手軽SNMP! (s2nmp)

このライブラリの特徴は、すべてRuby で記述されていることです。ですから、 UCD-SNMP 等の他のライブラリを必要としません。

素敵。ただし SNMPv1 しか対応していない雰囲気が漂う(未検証)

net-snmpエージェント上げるときはなるべく SNMPv1拒否で設定してるけど、実際ルータとかの情報得る時にはSNMPv1の方が多いんだよなあ。

#5 4648歩

2003/05/26 (Mon)

#1 Subversion 特殊な属性

$Rev$みたいなキーワード置換をするためには、svn:keyword 属性を設定する必要がある。

ファイルの実行属性は svn:executable に保存されている。chmod -x <somefile> に相当するコマンドは svn propdel svn:executable <somefile>

#2 tDiary 移行ほぼ完了

こっちの日記は5月いっぱいで終了予定です

#3 8177歩

2003/05/27 (Tue)

#1 [FreeBSD] クロスコンパイル

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 するという目論見に失敗。

@ distcc

遅い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 から始めるんならうまくいくのだが。

#2 OpenBSD pf ported to FreeBSD 5.0/5.1

FreeBSDでのALTQについての言及もあるので、パケットフィルタリング+帯域制限を ipfilter のような書式で書きたくなったら 採用してみるのもいいかも。

#3 FreeBSD 5.1 Release Process

cvsupしたらスケジュール通りRELEASE_5_1_0 タグが打たれてた。5.1Rまでカウントダウン…ていうかアナウンス前に5.1Rにしてみるか。

…と思ったらportsにしか打たれてないや。うにゃ。

#4 14160歩

2003/05/28 (Wed)

#1 ASP.NET クイック スタート チュートリアル

メモ

「サーバー側のデータ アクセス」に接続文字列のサンプルがある。

server=(local)\NetSDK;database=pubs;Trusted_Connection=yes

SQL接続文字列で、信頼関係接続の利用は Trusted_Connection=yes であったか。

#2 7155歩

2003/05/29 (Thu)

#1 5064歩

2003/05/30 (Fri)

#1 14873歩

2003/05/31 (Sat)

#1 tDiaryへ移行しました

6月以降はtDiaryにトラブルがない限り更新しない予定です。

#2 10696歩


ジャンプ 検索
年月日 :
カテゴリー :
Title only
Ignore case
コメント
ハンドル : 名前記録
一言 :

[Management] [TdfEditor] [LogAnalyse]
Powered by Tomsoft Diary System 1.6.2
Copyright(C) 2003 by KAMIYA Satosi [Mail] <mimoriso@anet.ne.jp>. All rights reserved. このサイトはリンク上等です。