68user's page 掲示板

Prev< No. 3372〜3388> Next  [最新発言に戻る] [過去ログ一覧]
No. 3372 # 68user 2003/10/16 (木) 00:22:37
>>3371 gaji
なるほど、ftpd の挙動が変わったのですね。

> ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで
> 処理される事が多い。
そういう実装が多かった、というのは確かかもしれません。
ただ、ProFTPD のように /bin/ls に一切頼らない ftp
サーバもありますので、あくまで「多かった」という程度
だと思います。

> ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは
> 設定可能なものでしょうか。
Solaris8, Solaris9 の ftpd を見る限りでは、そのような
設定はできないようです。
    http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.8&format=html
    http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.9&format=html

> ftp> ls ?????.txt local.txt
> 200 PORT command successful.
> 550 ?????.txt: No such file or directory.
もしクライアント側が LIST を発行しているとしたら
(ftp -d で確認できます)、LIST に対して 550 を返すのは
RFC 違反ではないかなぁと思いました。

      http://hp.vector.co.jp/authors/VA002682/rfc959j.htm より引用

      以下の表では、それぞれのコマンドごとの成功・失敗の応答を一覧表にしてあ
      る。これらは、確実に忠実でなくてはならない。サーバーは応答中の文章を変更
      してもよいが、その意味、コード番号により示される動作と指定されたコマンド
      応答シーケンスは変更してはならない。

      コマンド応答シーケンス
              LIST
                    125, 150
                          226, 250
                          425, 426, 451
                    450
                    500, 501, 502, 421, 530

この解釈が正しいなら、Sun に文句を言えば直してくれる
かもしれません。

ただ、ftp は規格が曖昧で、実装依存の塊みたいなものなので、
ls してクライアント側で grep した方が後々のためにもよい
かもしれません。ファイルに落として grep するとか、
      ftp> ls . "|grep ^.....\.txt$ >hoge"
とするとか。

No. 3373 # yoshi 2003/10/16 (木) 23:23:36
>>3361 68user

68userさんのご助言通り、
ftpサーバをPCに入れてみました所、上手くいきました。
ありがとう御座いました!

No. 3374 # とーりすがり 2003/10/20 (月) 17:13:15
>>3371 gaji
確か、Solaris9からwu-ftpdベースになっている筈です。

以下man ftpaccess(4)から...
/etc/ftpd/ftpaccess
lslong /usr/bin/ls
lsshort /usr/bin/ls
lsplain /usr/bin/ls

上記3行を追加してみては如何でしょうか...
外していたらごめなさい。
ではでは

No. 3375 # gaji 2003/10/21 (火) 19:22:13
>>3374 とーりすがり
情報の提供ありがとうございます。
試してみたいと思います。
>確か、Solaris9からwu-ftpdベースになっている筈です。
これは、私も何かの書籍で見た記憶があります。
また、何か情報がございましたらお願いします。

No. 3376 # 新米 2003/10/22 (水) 01:15:16
イーサカード(hme等)のインスタンス番号についてご教授ください。
hme0と認識されているカードをカード実装位置を変えずにhme5のようにインスタンス番号のみ変更することは可能でしょうか?

No. 3377 # foofoo 2003/10/22 (水) 16:02:09
送信サーバ認証が不要な SMTPサーバではサーバ外メール送信は実現できています。
しかし、送信サーバ認証が必要な SMTPサーバではサーバ外メールを送信できません。(Outlook Express ではサーバ外メール送信OK)

SMTP AUTH と POP Before SMTP を試しました。

SMTP AUTH は NONE-SUPPORT のメッセージが返りました。

POP Before SMTP として、POPサーバに USER と PASS コマンドを使い認証を受けた後(正常終了)で QUIT の直後に、SMTPサーバ にconnectし、HELO, MAIL FROM: とコマンドを送信し、RCPT TO: で 550 5.7.1 と Relay エラーを出してしまいます。

POP Before SMTP を実現するためのコマンドシーケンスを教えてください。

VC++ 6.0 Windows98SE

宜しくお願い致します。

No. 3378 # リダイレクションを引きとして渡す 2003/10/22 (水) 20:48:05
関数にリダイレクションを引数として渡したいのですが
どうも上手くいきません。ご教示お願いいたします。(OS:HPUX)

KANNSUU(){
echo "A" $1 tmp.txt
}

KANNSUU >

結果:"A > tmp.txt"と表示されてしまう。

No. 3379 # 68user 2003/10/22 (水) 21:24:53
>>3374 とーりすがり
> 確か、Solaris9からwu-ftpdベースになっている筈です。
おお、ほんとうですね。
      http://docs.sun.com/db/doc/816-3965/6ma7896j8?l=ja&q=wu-ftpd&a=view
知りませんでした。

ってゆーか、まわりに Solaris9 環境がなかったりするんですけどね。

>>3376 新米
> hme0と認識されているカードをカード実装位置を変えずにhme5の
> ようにインスタンス番号のみ変更することは可能でしょうか?
(Solaris かどうか書いてないのでわかりませんが) Solaris の
ifconfig はいろんな設定ができるので、できるかもしれませんし、
できないかもしれません。

>>3377 foofoo
> POP Before SMTP を実現するためのコマンドシーケンスを教えてください。
POP でアクセスすればそれでよいはずです。


その前に、調べ方が効率悪すぎです。

まずはサーバがどういう認証方法を取っているか調べましょう。それが
できないなら、ethereal などのパケットアナライザを使って、Outlook が
どういうふうに接続しているか調べましょう。


>>3378 リダイレクションを引きとして渡す
eval を使って
      KANSUU(){
          eval "echo 'A' $1 tmp.txt"
      }
とします。しかし、そのうちメッセージやファイル名に空白や
シングルクォート・ダブルクォートが入ってたら〜とかいう
話になると思うので、
      KANSUU(){
          if [ $2 = 0 ]; # file 出力モード
                echo $1 > tmp.txt
          else # 標準出力モード
                echo $1
          fi
      }
的な書き方をお勧めしておきます。

No. 3380 # foofoo 2003/10/23 (木) 02:09:44
>>3379 さん、ありがとうございました。

> POP でアクセスすればそれでよいはずです。

何かが悪いのでしょうが、前の記述通り、POP から SMTP の切替て RCPT TO:で 550 が発生してしまいます。

うまく行っている Outlook を ethereal でトレースしようと思います。
ethereal のようなトレースツールも知りたかったので大変うれしく思っています。
早速 ethereal をダウンロードしてトレースしてみます。

テスト後ご報告致します。

foofoo

No. 3381 # foofoo 2003/10/23 (木) 14:10:56
>>3379 68user
68userさん、大変ありがとうございました。

etherealを使いトレースしたところ、Outlook Expressは、POP Before SMTP ではなく、AUTH LOGIN コマンドを使っていることがわかりました。

< EHLO xnn000<CR><LF>
> 250
< AUTH LOGIN
> 334,334,235
< MAIL FROM:
> 250
      :
      :

Outlook Expressと同じ手順でOKにはなりました。

新たに不明な点が出てきました。
AUTH LOGIN の前に発行するEHLO に不明なアドレスのパラメータがついていました。
そのアドレスは、レジストリーで調査してもWindowsに設定されたアドレスでもなく、Outlook Express の設定の中にも無い下記のようなアドレスでした。
EHLO xnn000<CR><LF>
  注:x:a〜zまでの内の1文字 nn:00〜99までの数字

所持メールアドレスは、送信メールサーバで認証の必要なものは1つしか持ち合わせがないため、他のメールサーバの時にどうなるかを確認できません。

このアドレスの根拠についてご存知の方、教えてください。

宜しくお願いします。

No. 3382 # foofoo 2003/10/23 (木) 14:14:38
>>3381 foofoo
記載ミス

失礼しました、コマンドを統一表記していませんでした。
EHLO 以外も、Trailer として <CR><LF> は全て付加されています。

No. 3383 # ふくし [E-mail] 2003/10/23 (木) 15:17:40
お久しぶりです。質問です。
さいきん MovableType に手を染めたのですが、
結構快調に使えていたんですが、rebuild 時に
500 Internal Server Error になるようになりました。
ずっとエラーになっても、再構築はできてたっぽかったんですが、
このたびついに再構築じたいできなくなりました。
(いつまでたっても古いページのまま)

ドキュメントを見ると index.html を index.html.new に
退避してから書き込み動作を行い、
それが終わったら new を index.html に変名するような仕様に
なっているが、この場合 mt ルートディレクトリののパーミッションが
777 になってないといけない、とあったので、
みてみると、たしかに 755 だったので、777 にすると、
今度は書き込み動作をしようとするといきなり 500 になりました。

あわてて 755 に戻すと、書き込み動作時のエラーはなくなりましたが、
相変わらず再構築時にエラーになります。
で、ドキュメントに、index.html.new を作らない設定にするには
mt.cfg の NoTempFiles 1 を非コメント化するようにと言われたので、
しましたが、効きません。

なお、ルートには確かに index.html と index.html.new があって、
index.html のタイムスタンプは最後に再構築できたときです。
パーミッションは両方 666 です。
Perl は 5.005_03、
UNIX は FreeBSD 4.5-RELEASE-p36 #2
です。何かわかりましたら教えてください。
あと、板違いの場合はよさげな板を教えてくだされば幸甚です。
よろしくお願いします。

No. 3384 # ふくし [E-mail] 2003/10/23 (木) 15:29:33
<<3383
ティピカルな問題かも。
http://www2h.biglobe.ne.jp/~hnakamur/technolab/diary/2003/20030810.htm

system 'ulimit'; とかどっかに入れたろか ;;;

No. 3385 # 68user 2003/10/23 (木) 18:49:51
>>3381 foofoo
> EHLO xnn000<CR><LF>
> 注:x:a〜zまでの内の1文字 nn:00〜99までの数字
これについてはわかりません。
        http://www.puni.net/~mimori/smtp/ref.html#ehlo
には
        SMTPサーバは、実際にはTCP/IP接続のIPアドレスなどの情報から
        クライアントを識別すべきである。
とあるので、Outlook Express はあえて適当なホスト名を生成して
いるのかもしれません。

自分の FQDN を知っているならそれを、知らないなら IP アドレスを
渡しておけばいいのではないでしょうか。


>>3383 ふくし
> rebuild 時に 500 Internal Server Error になるようになりました
これだけでは「理由はわからないがエラーになる」と言っているのと
同じなので、原因を調べましょう。

    - web サーバのエラーログには何と出ているか
    - CGI として起動したときの truss や ktrace の結果はどうなるか
    - コマンドラインから実行するとこけるか

もし原因が limit である可能性が濃いなら、さらに以下のことを
調べましょう。

    - CGI として起動したときの limit 値は
        (apache なら設定ファイルに書いてあるかも)
    - コマンドラインから起動したときの limit 値 (シェルの limit 値) は
    - ソフトリミットか、ハードリミットか (ハードリミットなら変更不可)
    - suid などで他の権限になれるか。なれるとしたらそのリミット値は?
    - なぜこけるのか。
            手元の Solaris で試した限りでは、
                - datasize の制限なら、malloc(3) して、brk(2) したときに
                    ENOMEM が返ってきてこける
                - stacksize の制限なら、segmentation fault でこける。
            となりました。FreeBSD でも同じかどうかはわかりません。

> system 'ulimit'; とかどっかに入れたろか ;;;
これだと子プロセスのシェルの limit 値は変わるかもしれませんが、
自分自身の limit 値は変わりません。

CPAN から setrlimit(2) するライブラリを拾ってくるか、自分で
syscall で呼ぶ必要があります。

# ただし、ハードリミットならどうしようもありません。

No. 3386 # ふくし 2003/10/23 (木) 21:27:25
>>3385 68user
さん、いつもありがとうございます。
すみません、レンタルサーバー(さくらウェブ)が
ログを見せてくれません。
telnet は使えるので、もう少しいろいろやってみます。
検索した限りでは同じサーバーで同病の人が多いので
制限のようですが、どのレベルでの制限かはまだわかりません。

No. 3387 # foofoo 2003/10/24 (金) 11:18:10
>>3385 68user
68user さん、ありがとうございました。
コメントを参考に対処していきます。

No. 3388 # peace 2003/10/25 (土) 23:20:56
fork関数とselect関数の違いが分かりません。誰か教えてくれませんか?

Prev< No. 3372〜3388> Next  [最新発言に戻る] [過去ログ一覧]