▲ Jun. 25,2000 Kondara の apache設定 |
ちたま…もとい、ちまたでは、 選挙だとかで 賑やかだが、ウィークリーマンション住いの住所不定 のわしには、選挙権が無いので、残念ながら、 投票に行きたくても行けず、 Kondara の環境設定をやった。
先週の土曜に _tom_さん に会い、Kondara MNU/Linux 1.2 を焼いた CD-ROM を 戴いたのだが、 ネットワークのアクセス環境を PHS の PIAFS に 頼っているわしにとって、 これは非常にありがたいものだった。
今までなら、テレホーダイ時間を利用して、夜通し FTP で 3日くらいかけて取ってきたりしてたのだが、PHS の電話料金が PDC 携帯電話に比べて安いとはいえ、 先週の料金請求では、 27,000円も請求されたくらいだから、 テレホーダイ使ってた時代と同じ様な事をすれば、 きっととんでもない金額になるだろう。
こんな環境だから、このゑっぶぺいづを更新するのにも、繋いでテストなんか
してたら、どんどん DDI Pocket
を儲けさせてしまう。
そこで、シミュレーション環境として、
Apache httpd の設定をやった。
# 長い前置きだ:-)
Kondara のイントール時に、面倒っちいので、 everything で入れたが、 起動時に、Apache は FAILED と表示されて起動していないのは解っている。 DNS は動かしていないので、過去の経験から言えば、大方、ServerName の 設定あたりだろうとは思うのだが、一応、root になって、起動テストを行う。
[root@trueno conf]# /etc/rc.d/init.d/httpd start Starting httpd: httpd: cannot determine local host name. Use the ServerName directive to set it manually. [FAILED]
「ServerName directive を手動で設定せい」との事なので、 /etc/httpd/conf/httpd.conf をいぢる事にする。
[/etc/httpd/conf/httpd.conf] #ServerName localhost
以前は、勝手に localhost になっとったけど、当該箇所の説明を 読むと、ネットワークに繋がってて、かつ、DNS に登録されていないマシン だと、クライアントから何か送信をする場合に不都合 があるとの事で、 明示的に指定しないと起動失敗するようにしたんやな。
わしのコンダラマシンは、ノートパソコンの VAIO PCGA-C1XE なので、 固定での運用を前提にしている httpd を入れるのがそもそもの 間違いだ:-D。
しかし、SSI(Server Side Include)や、 CGI(Common Gateway Interface) プログラムのテストを行う シミュレータとしての運用なので、外部からアクセス される事を考える必要は 無く、localhost で良い。したがって、‘#’を下の様に外すだけ。
ServerName localhost
保存終了して、
[root@trueno conf]# /etc/rc.d/init.d/httpd start
Starting httpd: [ OK ]
と無事 apache 起動。 早速、 Netscapeで http://localhost/~noizumi/ を確認してみると、 403 Forbidden になる。 これは、おそらく、ディレクトリのパーミッション問題なので、早速 セキュリティレヴェルを下げる事にする :-)
Apache httpd がどの権限で動いているかは /etc/httpd/conf/httpd.conf の 以下の部分で定義されていて、大抵、httpd とか nobody 権限で動いているが、 apache-1.3.12-2k1 の場合、nobody である。
[/etc/httpd/conf/httpd.conf] User nobody Group nobody
ユーザペイジをアクセスするのは、この nobody な人なので、 nobody な人がちゃんと、ディレクトリに入ってペイジが見れる 様になっていなければならない。
noizumi というユーザの Web Pages を公開しようと思っている場合、 nobody 権限の Apache httpd がちゃんと アクセス可能になっていなければ ならないので、
[noizumi@trueno /home]$ chmod o+x noizumi [noizumi@trueno /home]$ ls -ld /home/noizumi drwx-----x 32 noizumi noizumi 4096 Jun 25 16:01 noizumi
と最低限 Other の パーミッションに実行属性を つけてやると良い。 別に Read属性もつけて良いが、他人に chdir されて、ファイル一覧見られて も良い人は、殺っちゃって…もとい、やっちゃって 下さい(^^;。 そして、あらかじめ用意してある /home/noizumi/public_html は
[root@trueno /home]# ls -ld /home/noizumi/public_html drwxr-xr-x 23 noizumi noizumi 4096 Jun 25 15:40 /home/noizumi/public_html
となっているので、 これで、/home/noizumi のディレクトリにどんなファイルが入っているのかを 同じサーバの他の人に見られる事は無く、 /home/noizumi/public_html を公開の状態にできる。
とは言え、ファイル名が解っている場合、Other に read 属性付けてる ファイルは cat などで読めてしまう。 たかだか、他のユーザをディレクトリに入れるようにしただけで、 大幅なセキュリティの低下は避けられない という事を銘記しておかねばならぬぅ〜。
しかし…、わしの場合は、そもそも、ノートパソコンでそこまで 神経質になって どないすんねん!? という話もある(^^;。
まぁ、それは深く考えない事にして:-)、 Netscape で再び、http://localhost/~noizumi/ を確認してみると、 表示された!…ん!? charset が iso-8859-1 になっとる!?
http://localhost/~noizumi/index.html を表示するとちゃんと EUC-JP な 表示になるのだが、う〜ん…、これは解らん。
試しに telnet でテストしてみた。
[root@trueno conf]# telnet localhost 80 Trying 127.0.0.1... Connected to trueno (127.0.0.1). Escape character is '^]'. HEAD /~noizumi/ HTTP/1.0 HTTP/1.1 200 OK Date: Sun, 25 Jun 2000 13:02:13 GMT Server: Apache/1.3.12 (Unix) (Kondara MNU/Linux) Connection: close Content-Type: text/html Connection closed by foreign host. [root@trueno conf]# telnet localhost 80 Trying 127.0.0.1... Connected to trueno (127.0.0.1). Escape character is '^]'. HEAD /~noizumi/index.html HTTP/1.0 HTTP/1.1 200 OK Date: Sun, 25 Jun 2000 13:03:38 GMT Server: Apache/1.3.12 (Unix) (Kondara MNU/Linux) Connection: close Content-Type: text/html Connection closed by foreign host.
Content-Type: の後に charset がついて無いから、Apache httpd の出力には 問題がない。 という事は Netscape の問題か? 試しにw3m で見てみると、ちゃんと日本語が表示される。どうも Netscape に 原因があるようだ。
詳しくは、Netscape が送信している HTTP のコマンド を見てみないと解らないが これ以上、横道にそれるのもナンなので、 とりあえずよしとする(^^;
<2000/07/02 追加>
原因が解った。Netscape で http://localhost/~noizumi/ を最初に表示させた
時、Forbidden と表示されているが、Apache が
エラーメッセージを表示する時、charset=iso-8859-1; がセットされていて、
これが無くなっても、Netscape が覚え続けている為だ。
Netscape で何度リロードしようと、一旦覚えた charset はクリアされない
ので、Netscape のキャッシュをクリアしなくてはならない。やはり、Netscape
のバグだった。
</2000/07/02 追加>
後は、 CGI や SSI の設定だが、/etc/httpd/conf/httpd.conf を編集して、
[/etc/httpd/conf/httpd.conf] AddHandler cgi-script .cgi AddType text/html .shtml AddHandler server-parsed .shtml .html <Directory /home/*/public_html> AllowOverride All Options All <Limit GET POST OPTIONS PROPFIND> Order allow,deny Allow from all </Limit> <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Order deny,allow Deny from all </Limit> </Directory>
と、Airnet の環境と似せておく。 設定ファイルを保存して、設定の再読み込みさせれば 完了。
[root@trueno conf]# /etc/rc.d/init.d/httpd reload Reloading httpd: [ OK ]
cgi の為に、ln -s /usr/bin/perl /usr/local/bin とやってやり、 Netscape で http://localhost/~noizumi/index.html を見てみると、 ちゃんと SSI も CGI プログラムも動いた。これでやっと 一安心である。
今回、Apache の設定ファイルいじってて気づいたが、今まで、httpd.cof、 srm.conf、access.conf と 3 つのファイルに分かれていたのが、1 つに 統合されとるね。 お好みにより、分ける事もできるみたいやけど、1 つにまとまったのは、わしに とって、いちいちファイル間をいったりきたり せんでええので、ありがたい。
あと、とんでもないセキュリティホールに なりかねないシンボリックリンクが オーナチェック入るようになったみたいで、これで、あほなユーザが、
ln -s /etc/passwd ~/public_html等と、全世界に向けて公開し、 辞書アタック Welcome な環境を作れる事も無くなったという訳で、暫く見てない間に、 確実に良くなっている Apache は すごいと感心した次第である。
という Dynafont のテスト:-p
▲ Jun. 23,2000 奇妙なメイル(その2) |
6/21の日記に
>きっと、裏には
凄まじい勘違いが
あるに違いないのだが、
>その真相は永久に明らかになる事は無いだろう。
と書いたのだが、なんとお返事がきた。
今まで、いろんな人から勘違いメイルを戴いたが、大抵、こちらから、 「なんじゃそりゃ?」と尋ねると、まず返事が返ってこなくて、真相は闇に 葬りさられるという、歯痒い思いをしてきた。
今回もそうかと思い、少々、ムカつきモードになって、 「きょ〜、ソーシャルエンジニアリングか? きょ〜、わしの勤務先を探る気か?」(^^;と、 キツいメイルを送ってしまい、 あまつさえ、日記に紹介してしまうという暴挙に出て、ほとんど 「この者極悪人」と Z印のカードを添えられてぐったり倒されても仕方の ないくらい非常に申し訳ない事をしてしまった。 マンスーm(__)m。
で、お返事によると、どうやら、わしは、 E*トレード証券の 関係者だと思われていたらしい。
「E*トレード証券のNet会社案内」のペイジにわしのメイルアドレスがあり、
「窓口だと思ってしまった」との事だ。 E*トレード証券の Web Page を
探してみたが、わしのメイルアドレスは無かった。考えてみれば、信用第一の
証券会社が、得体の知れないわしごときのペイジにリンクを張る
はずがない:-)
きっと、第三者が作ったペイジを勘違いされたのだと思うのだが、その URL は書かれていなかったので、結局、どこが迷宮の入口なのかは解らず仕舞い ってのが、今回のわしの結末。
で、メイルを下さった方は、E*トレード証券のTV CMで流れているクラッシック の曲名が解らなくて、困られているそうな。作品番号と作曲者がお分かりの方 は、メイルか、 けいづばんまでお知らせ下さるとありがたいです。
▲ Jun. 21,2000 奇妙なメイル |
奇妙なメイルがやってきた。
Received: from mail.tk.airnet.ne.jp by localhost with POP3 (fetchmail-5.3.8) for noizumi@localhost (single-drop); Wed, 21 Jun 2000 00:21:30 +0900 (JST) Received: from xxxx.xxxxx.xxx.com (xxxxxxxxxxx.xxxxx.xxx.com [xxx.xx.xxx.xx]) by mail.tk.airnet.ne.jp (8.8.8/3.6W/06/13/98-TK.AIRNET.NE.JP) with ESMTP id AAA18792 for <noizumi@tk.airnet.ne.jp> Wed, 21 Jun 2000 00:02:59 +0900 Received: from toshiba-user - xxx.xxx.xxx.xxx by email.xxx.com with Microsoft SMTPSVC; Tue, 20 Jun 2000 08:02:07 -0700 Message-ID: <000701bfdac6$99f7d900$d5bea5d2@toshiba-user> From: "xxxxx" <xxxxx@xxxxx.xxx.com> To: <noizumi@tk.airnet.ne.jp> Subject: 菻R}[V Date: Tue, 20 Jun 2000 23:48:26 +0900 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.2106.4 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 X-UIDL: 3fd903a48561ed70fe1eeb50b68de7a6 野泉様 実は証券に関しての問い合わせではないですが、下記を調べたくて御社のホームペー ジを捜しましたが分からなかったので連絡させて頂きました。 御社のTVコマーシャルで流れているクラッシック音楽の曲名・作曲者を教えて頂けま せんでしょうか。 御存じない様であれば、御社の広報部にでもこのMailを転送頂けませんでしょうか。 誠にへんな質問で恐縮ですが、何卒宜しくお願い申し上げます。 xxxxx@xxx.com |
Subject: の化け具合からも解る通り、元のメイルは、Shift JISで送られて きて文字化けしとったけど、Wanderlust で、'M' を押して、 MIME-View を キャンセルしたら、読めた。まぁ、そんな事はどうでもええ。
わし、勤める会社なんて、ごく親しい人にしか明かしてへんのに、なんで 見ず知らずのこのシトが知ってんの? まったく、変な質問…というより、気味が悪い。
一瞬、ソーシャルエンジニアリングで、わしの勤める会社を知る為に、 既に会社を知っているフリをして、まんまとわしから勤め先情報を 引き出そうとしているのかとも思ったが、それにしては、わざわざ Shift JIS という文字コードで、可読性を下げたメイルを送ってくる のがそもそもおかしいし…。
わしは、とりあえず、返事として、何という会社か?という事と、 ソーシャルエンジニアリングの恐れがあるから、見ず知らずの人に こちらから勤務先を言う訳にはいかないという事、そして、勤務先は 親しい人にしか明かしていないから、きっとあなたの勘違いであると、 書いておいた。
しかし、こうも自信を持って、「御社のTVコマーシャルで…」なんて 言われると、一体、どういう情報源がら、わしの勤める会社を断定するに 至ったのかという過程が興味深いところだ。
きっと、裏には 凄まじい勘違いが あるに違いないのだが、その真相は永久に明らかになる事は無いだろう。
▲ Jun. 12,2000 携帯電話のお仕事(その2) |
仕事で、携帯電話のキーボードのソフトウェアを担当しているというのは、 前日書いたが、このコードは前任者がスパゲッティに仕上げてしまっている 為、余りに難解で、腹が立ったので、主要部分を殆んど書き直してやった。
わしはもうすぐ会社を去るのだし、引き継ぎの者が訳の解らんスパゲッティ で悩まされるのも嫌だろうし、余りに難解すぎて、次の会社へ行ってからも 呼び出されたりするのも御免だ。
書き直したソースをコンパイルして、肥大化していないか前のコードと バイナリサイズを比較してみると、何と! 22.4% も減量していた。 機能も追加した上でこれなのだから、多分、少なく見積もっても 25% 位は ソースコードの読解を妨げるゴミが混入されていた計算になる。
前のソースには、当然、コメントなんか殆んど無くて、組んだ奴の意図が全く
図りかねる状態で、おまけに22.4%ものゴミを含んだ状態のソースの解読は、
非常に困難を極めた。
ICE でトレースしながら、やっと最近になって全体の動作が把握できた
ところだ。
# わしの読解力が弱いという話もある(^^;
書いてあったコメントにしても、「パラメータ追加だよ」とか追加した日付と 顔文字とか、第三者にとって全く無意味なゴミばっかりで、大層ムカつき、 わしがその2048倍(当社比(笑))くらい意味のあるコメントを加えておいた。 でも、組まれたコードの真意は、組んだ奴にしか解らんようなコードだった ので、末尾には(らしい)と付け加えてある(笑)。
コメントは客観的視野に立って、自分のソースを読み、他人が見たら 理解しにくいだろうなと思える箇所に書いておくのが望ましいと思う。
やっぱ、ソースコードは、再利用性やメンテナンス性が乏しいと、 人的資源を浪費するゴミ以外の何者でもないな。
▲ Jun. 11,2000 携帯電話のお仕事 |
仕事で、携帯電話のキーボードのソフトウェアを担当していいて、 研究の為、他社の携帯電話をいじってみると、おもろい挙動をするやつがある。
例えば、[2][4][5]を同時に押すと、[1]が入る。[3][5][6]を押すと、[2]が 入る。押してもいないキーが入るとは、何とも変な話である。 聞いた話では、これはキーボードハードウェアにダイオードを入れていない から起こるそうな。
| | | -[1]-[2]-[3]-←(I1) | | | -[4]-[5]-[6]- (I2) | | | -[7]-[8]-[9]- (I3) | | | -[*]-[0]-[#]- (I4) | | | ↓ ↓ (O1)(O2)(O3) |
[2]キーを一つ押しただけなら、(I1)から電流を流すと、(O2)に流れ、 これを検知する事で、[2]が押されている事が解る。同様に(O1)に出力 があれば、[1]、(O3)に出力があれば[3]という具合。 ところが、[2][4][5]の3つのキーを同時に押すと、(I1)に電流を流せば、 押されている[2]を通って、[5]へ行くのだが、[4]も押されているので、 そこを電流が通り、出力が(O1)(O2)の両方から出てしまう。 次に(I2)に流すと(O1)(O2)で[4][5]が押されているのが解り、 全て検知すると、実は、[1][2][4][5]が押されていると誤認識して しまう。 同様に、[3][5][6]、[5][7][8]、[6][8][9]、[8][*][0]、[9][0][#] でも誤認識が起こるという訳だ。 |
某社の携帯電話は、最初に検知したキー一個のみを入力として認め、後は 捨てるというアルゴリズムのようで、そのせいで押してもいないキーが 入ってしまうようだ。
他社のは、誤入力防止の為、複数のキーを検知したら全部捨てているようで、 わしが担当するソースコードも前担当者がそうしていた。
たかが、キーやと思うてたけど、結構奥深いもんがあるなぁと思うた次第 である。
▲ Jun. 02,2000 決意 |
今日は、会社の人と一緒にマクドで夕飯食うとったら、次長が会議で 『仕事が遅れてるなら、兵隊働かせて云々』って言うたんで、殺る気満々…、 やのうて(^^;やる気無くすちゅう話を聞いた。
う〜ん…、いくらなんでもそら、部下の前で言うたらあかんやろ。 わしと一緒に話を聞いていた課長曰く、「そら、社長聞いたら怒るで」 と言うてはった。
社長は人事についても「人が人を評価するなんて不遜な事だ」と言うてた くらいやから、そらそうやろな。
まぁ、次長はんは大企業にいはった人で、へっどはんちんぐされて 昨年末に入ってきはったばかりやから、まだ、その意識は薄いとは思うけど…。
加えて、次長はんの悪いクセは、部下が反論すると烈火のごとく怒らはる ことで、わしもキツく言われました:-)。
ほんで、わしはその後、暫くして、「辞める」と上司にいうたんやけど、 次長と因果関係は無くて、上司に「SE研修を受けてくれ」と言われて、 3月から考えていて、もうそろそろ辞めよかというこの時期に、これ以上、 恩を受ける訳にはいかんなぁと思うて、「辞める」言うたわけですわ。
で、一緒に夕飯食うてた課長はんの話では、次長はんは、自分がキツく 言うた事でわしが「辞める」と言い出したのでは?と気にしてるそうな。
それと、他にもキツく言うてる人が何人かおるので、その人達も (わしのように)辞めると言い出さないかどうかヒヤヒヤやそうや。
そう言えば、二日前くらいに直属上司から、「(辞めるのは)キツく 言われたからじゃないのか?」ってのと、「まだ(辞意の)撤回は可能やで」 って話をされたけど、わしのような世間をなめている「なめなめ」を 引き留めて下さるとは…
よっぽど人手不足なんやろな:-)
しかし、わし、キツく言われた程度で辞めるくらいやったら、何回 職変わってるかわからへんで(笑)。
わしは、自分自身に負けるのが一番嫌やから、「逃げた」みたいに 思われとるのは非常に心外やが、辞めるまでに、今担当している仕事を キッチリ仕上げて、そうでない事を証明するしかあらへんなと思う。