Paddie's CGI 掲示板 記事の表示


Diary 1.7
    記事番号:667
    記録日  :Nov08/2003,17:55
    記録者  :Paddie

Paddieです。 こんにちは(^^)

長らくお待たせしておりましたDiary 1.7がようやくできました。
実に14ヶ月ぶりのバージョンアップです。

今回の変更点は以下の通りです。

1)カレンダーの表示に不具合があったのを修正しました。

2)AnHTTPd の環境で使用する際、SSIの動作がうまくいかない問題に対応しました。

3)携帯電話での表示において、「より新しい日記」が表示されなくなっていたのを修正しました。

4)強調色の設定に失敗する問題を修正しました。

5)PC、PDAからのアクセス時に、「より新しいページ」「より古いページ」というリンクを表示するようにしました。

6)最終に記録された日付を「last.log」というファイルに書き出すようにしました。

7)日付を指定してジャンプすることが可能になりました。

8)携帯電話で表示させたとき、「TOPに戻る」というリンクをつけました。

9)月毎の表示ファイルを読み込まなくなる問題を修正しました。

10)「携帯電話では編集しない」というオプションをつけました。

11)EZWeb(旧)で編集する際、タイトルが入らない問題を修正しました。

ここからダウンロードしてください。





このスレッドの表示
現在の記事よりも下流のものは内容も表示されます。
下流の記事は、そのタイトルをクリックすることでその記事に直接返信することもできます。

667.->Diary 1.7(現在の記事)<-:Nov08/2003,17:55 
  668. Re:Diary 1.7
  (Rep.to No.667.)
ちくたく:Web:TickTack:Nov08/2003,22:30 
>長らくお待たせしておりましたDiary 1.7がようやくできました。
>実に14ヶ月ぶりのバージョンアップです。

早速更新しました。
強調色2とかちゃんと動いてうれしいです。
バージョンアップお疲れ様です。

ところで、自分の使ってるサイトは日記のデータファイルのパーミッションが600でも動作するので、

41行目の『mkdir ("$datadir" , 0777);』
2556行目の『chmod (0777,"$datadir/link.den");』
2658行目の『chmod (0777,"$datadir/$sfilename");』

ここを777→600にすればCGIの吐き出すファイルはすべて600になるでしょうか?
また、そのように変更してもよいのでしょうか?

@### 権利を放棄したわけではありませんのでご使用の際にはこの ###
@### コメントより下の内容を改変することを禁止します。 ###

とのことですのでお聞きします。
時間のあるときにでもお答えいただければ。
でわでわ。
--------------------
  669. Re(2):Diary 1.7
  (Rep.to No.668.)
千葉ひで:Nov09/2003,00:15 
お忙しいなかのご対応ありがとうございます!
本当、何度も何度もいいますが、すごくいい日記CGIですね!お仕事も忙しそうですががんばってください
--------------------
  672. パーミションの変更について
  (Rep.to No.668.)
Paddie:Dec09/2003,15:54 
Paddieです こんにちは

>ところで、自分の使ってるサイトは日記のデータファイルのパーミッションが600でも動作するので、
>
>41行目の『mkdir ("$datadir" , 0777);』
>2556行目の『chmod (0777,"$datadir/link.den");』
>2658行目の『chmod (0777,"$datadir/$sfilename");』
>
>ここを777→600にすればCGIの吐き出すファイルはすべて600になるでしょうか?
>また、そのように変更してもよいのでしょうか?

#41行目の変更は、データディレクトリを新規作成しても、それを開くことができなくなるため、やめておく方が無難です。
残りの2つについては、通常はその変更をされても動作はするでしょう。

但し、サーバーを移転する場合や、バックアップを取るような場合、若干問題があるかもしれません。
具体的にいうと、データディレクトリ内のファイルをコピーする際、目的のファイルにアクセスできないかもしれないのです。

ここで、これらの設定を600に変更した場合、それぞれについて考えてみましょう。

まず、覚えておいていただきたいことがあります。

1)通常、Webサーバーはサーバー上で「HTTPD(Webサーバーソフト)を動かすユーザー」が別に設定されています。(nobodyという名前のユーザーになっていることが多いです。)

2)そしてCGI利用者(サーバー上のアカウントではなく自然人としての人)は、これ(nobody)とは別のアカウントでサーバーにログインすることができます。

上の2点を踏まえた上で、それぞれの変更について見ていきましょう。

41行目の『mkdir ("$datadir" , 0777);』を600にした場合

データディレクトリが600で作成されると、nobodyを含む一般ユーザーはデータディレクトリにアクセスできなくなります
↑これは大問題ですね。やめておきましょう。

2556行目の『chmod (0777,"$datadir/link.den");』
2658行目の『chmod (0777,"$datadir/$sfilename");』をそれぞれ600にした場合

link.denはリンク禁止先を設定するファイルですので、移転時にも同じように設定し直すだけですから大きな問題にはなりません。
次の$sfilenameというのはファイル保存サブルーチンで扱う全てのファイルがこの影響を受けます。
つまり、日記本文のファイルや月別表示用ファイル、休日ファイルなどが全てオーナーがnobody、パーミションが600になるのです。
ということは、このファイルをコピーできるのは「nobody」「root」の2名だけになりますから、その他の一般ユーザーアカウントではデータのファイルにアクセスできない、という結果になります。

これらのファイルにアクセスできない場合、サーバーを移転したい時やデータのバックアップをとりたいと思っても、アクセス不能となり、ファイルをコピーすることができなくなってしまいます。

※例外として、自営サーバーであったり、「nobody」や「root」でログインできる状況であるなら、600で何の問題もありませんが。

そういうわけで、これらの設定を600に変更することは、あまりお薦めできません。
といってもデータディレクトリの中にあるファイルは、現状では777である必要もないわけで、あえて変更するとすれば666にする位でしょうか。
(※データディレクトリには開くために実行権限が必要なので、41行目だけは777のままにしてください。)
--------------------
  673. Re:パーミションの変更について
  (Rep.to No.672.)
ちくたく:Web:TickTack:Dec11/2003,00:34 
>1)通常、Webサーバーはサーバー上で「HTTPD(Webサーバーソフト)を動かすユーザー」が別に設定されています。(nobodyという名前のユーザーになっていることが多いです。)
>2)そしてCGI利用者(サーバー上のアカウントではなく自然人としての人)は、これ(nobody)とは別のアカウントでサーバーにログインすることができます。
>つまり、日記本文のファイルや月別表示用ファイル、休日ファイルなどが全てオーナーがnobody、パーミションが600になるのです。
>ということは、このファイルをコピーできるのは「nobody」「root」の2名だけになりますから、その他の一般ユーザーアカウントではデータのファイルにアクセスできない、という結果になります。
>これらのファイルにアクセスできない場合、サーバーを移転したい時やデータのバックアップをとりたいと思っても、アクセス不能となり、ファイルをコピーすることができなくなってしまいます。

自分の使っているサーバー(ぷららですが)ではperl(phpは違いますが)に関しては1)=2)になっているようなんです。
perlで作成されたデータファイルも所有者が「nobody」ではなくサーバーアクセス用のアカウントとなってます。
なのでパーミションが600でもデータのファイルにアクセスできて、ファイルがコピーできるようなのです。

サーバーの解説に
>尚、本サーバにおいては、お客様のCGIは、お客様のアカウント権限で実行されます
ということのようで$datadir下にあるデータファイルは600でも読み書きが可能なようなので、一般ユーザからの読み書きを禁止しておけばいたずらされる可能性も低くなるだろうなぁと思ったわけです。
(いたずらされるようなサイトでもないですが)
実際手作業で666→600としてるのがめんどかたっていうのが理由だったんです^^;
ならCGIのソース書き換えたほうが早いんじゃないかなぁと。
お手を煩わせてすみませんでした。

蛇足ですが、PHPの方は「nobody」になるので前からなんでかなぁと思っていたのですが、今回のことで勉強になりました。
ありがとうございました。
--------------------
  674. それなら大丈夫かも
  (Rep.to No.673.)
Paddie:Dec11/2003,08:44 
Paddieです こんにちは

>自分の使っているサーバー(ぷららですが)ではperl(phpは違いますが)に関しては1)=2)になっているようなんです。
>perlで作成されたデータファイルも所有者が「nobody」ではなくサーバーアクセス用のアカウントとなってます。
>なのでパーミションが600でもデータのファイルにアクセスできて、ファイルがコピーできるようなのです。
>
>サーバーの解説に
>>尚、本サーバにおいては、お客様のCGIは、お客様のアカウント権限で実行されます
>ということのようで$datadir下にあるデータファイルは600でも読み書きが可能なようなので、一般ユーザからの読み書きを禁止しておけばいたずらされる可能性も低くなるだろうなぁと思ったわけです。
>(いたずらされるようなサイトでもないですが)
>実際手作業で666→600としてるのがめんどかたっていうのが理由だったんです^^;
>ならCGIのソース書き換えたほうが早いんじゃないかなぁと。

なるほど、そういう設定のサーバーなら600にしておいて問題はありませんね。
※但し、データディレクトリは700にしてください。

サーバーでsuEXECか何かが使われているのでしょうか。(SUIDかも?)
この設定はなかなか良心的だと思いますよ。

覗き見やいたずら防止という意味では、600にできると安心感が全然違いますね。
--------------------
  679. Re:それなら大丈夫かも
  (Rep.to No.674.)
ちくたく:Web:TickTack:Jan01/2004,13:40 
>※但し、データディレクトリは700にしてください。

あ、そうですね
でないとファイルが探せないや

>サーバーでsuEXECか何かが使われているのでしょうか。(SUIDかも?)

suEXECのようですね

>覗き見やいたずら防止という意味では、600にできると安心感が全然違いますね。

設定ファイルとかの見られやすさがぜんぜん違いますからね。
--------------------

Paddie's BBS Ver. 9.0.32.
(C) 1999-2004 Paddie.