68user's page 掲示板

Prev< No. 2521〜2560> Next  [最新発言に戻る] [過去ログ一覧]
No. 2521 # ふくし [E-mail] 2002/02/21 (木) 18:26:03
>>2520 ふくし
もう少しspecificになりました。
次の条件が揃うと起きるようです。
・IE6 でブラウズする(NC、NE5以下ではオッケー)
・<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
    で始まる
・<table> の中で <span class="code">~</span> を使って文字を修飾している
・stylesheet(今回は content.css)の code クラス定義で
    white-space:pre;(ホワイトスペース文字で改行しない)が定義されている
この条件が揃うと、行がどんどんどんどん伸びていくという
不具合が発生します。

<span class="code">~</span> の変わりに
<code>~</code> だと大丈夫ですが、
それだと字がちょっとちっちゃくなります。

No. 2522 # Hiro [E-mail] 2002/02/22 (金) 08:28:21
うーん・・
けっきょくまだネスケをインストールできていません・・
データは入手できたのですが・・インストールの仕方がなんだかよくわからなくて・・
また今日の夜トライします。

No. 2523 # りんりん [E-mail] 2002/02/22 (金) 20:52:27
買い物カゴシステムでCGIを利用していますが、品目を選んで一度COOKIEにデータが送られた後、再度違う品目を選んでCGIにそのデータを送ると、前のデータが上書きされ、(?消え、)前に選んだ品目は無くなり新しいデータのみになってしまいます。複数のページから品目を選んだり、後から選んだ品目を追加できるようにしたいのですが良い方法はありませんか?また、反対に一度COOKIEに送られたデータはどういう仕組みで空になるのでしょうか?自分でも一応調べてみてはいるのですが、PEALにあまり詳しくないので、どなたかご存じの方がいらっしゃいましたら教えていただけませんか。よろしくお願いします。

No. 2524 # 68user 2002/02/23 (土) 01:57:00
>>2520 ふくし
僕は HTML とか SGML とかには全く詳しくないので、
ここで質問しても何も得られない可能性は高いですよ。
# 質問するなと言っているわけではありません。

>>2523 りんりん
マルチポストうざーい。
    http://www.parkcity.ne.jp/~chaichan/qanda/qa2516.htm

No. 2525 # ふくし [E-mail] 2002/02/23 (土) 12:17:07
>>2524 68user
            さん:
ええと、ここは68userさんにそれ以外の人が質問する部屋ではなくって ;;;
(時々そうなのかな、と錯覚しそうになりますが ;;;
一応みんなで意見の交換、知識の共有をする部屋ですよね。
あと、HTML/SGML は一応ここのお題に即してますよね。
ということで、書かせてもらいました。いつもお世話になっております。
ちょっとは答える方でも活躍しようといつも思っているのですが、
かえって半端な知識を披瀝してご迷惑を掛けているケースも
ままあるようで恐縮です。;;;
精進しますので、よろしくお願いいたします。

No. 2526 # 名無し 2002/02/23 (土) 13:14:01
http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse
自分で情報の共有、とかなんやら言ってるんだから、
すべての投稿に対して、ここはおいらが管理人なんだーみたいに
レスしてるみたいだけど、それなら、メールで質問してもらって、
回答を掲載すればいいだけだな。

わざわざ、「掲示板」を設置しているんだから、みんなから情報を
集めようとしてるんでしょ?。

No. 2527 # 68user 2002/02/23 (土) 13:48:34
>>2525 ふくし
> ええと、ここは68userさんにそれ以外の人が質問する部屋ではなくって ;;;
> (時々そうなのかな、と錯覚しそうになりますが ;;;
> 一応みんなで意見の交換、知識の共有をする部屋ですよね。
それはその通りですが、今回の件に関してこの掲示板と、例えば
    http://www.parkcity.ne.jp/~chaichan/bin/qanda.cgi?modefg=9&dumy=0
のどちらで質問した方が解決しやすいかと言えば、後者の方だと
思います。ここの掲示板で深い HTML の話題になったことは一度も
なかったはずなので。

が、ネタ振りのおつもりでしたら いらぬおせっかいでした。

>>2526 名無し
> すべての投稿に対して、ここはおいらが管理人なんだーみたいに
> レスしてるみたいだけど
要は僕が「すいません、わかりません」と書くのがよろしくないと?

基本的に管理人が発言しないような質問・回答の場は (例えば 2ch)、
多人数の有識者が揃わないと成り立たないと考えています。極端な話、
少人数かつ有識者もほとんどいない場合は、結局誰も返答せず
閑古鳥が鳴く可能性が高いことはおわかりでしょう。

で、この掲示板は、管理人が放置プレイをするには規模が小さすぎると
考えているわけです。要は掲示板の規模・形式に応じた運営スタイルの
違いじゃないでしょうか。

それでもやはりうざいと感じておられるのでしたら、しばらく
「わかりません」的な発言は控えてみましょうか。

No. 2528 # ふくし 2002/02/23 (土) 19:28:16
>>2527 68user
                さん:

面白そうなボードの紹介をありがとうございます。
下記の件は本当に困っているので、マルチポストになりますが、
そっちで聞いてみます。

No. 2529 # 高井あた 2002/02/23 (土) 22:09:19
こんにちは。これからWindows98のPerlでソケットを
勉強しようとおもっています。ご厄介になります。
よろしくお願いします。
(手始めにdaytimeクライアントを作ろうと思ってます。)

FYA:手始めにWindows版のtcpdump、Windumpをダウンロードして、
ドキュメントも取ってきて翻訳をExciteに任せたら、すごいことに。

原文 http://netgroup-serv.polito.it/windump/docs/manual.htm

>Under SunOS with nit or bpf: To run tcpdump you must
>have read access to /dev/nit or /dev/bpf*.
>幼虫またはbpfを備えたSunOSの下で: 走ること tcpdump
>アクセスを読んだに違いありません、に /dev/幼虫 あるいは /dev/bpf* .

# SunOSには幼虫デバイスがぶら下がっているのでしょうか?!

>Primitives may be combined using:
>原始人は次のものを使用して組み合わせられるかもしれません:

# 英語も出来ないとだめみたいですね。

No. 2530 # CZ 2002/02/25 (月) 17:58:54
>>2529 高井あた さん

> 原文 http://netgroup-serv.polito.it/windump/docs/manual.htm
これはWinDumpのというよりtcpdumpのドキュメントではないでしょうか。↓に日本語訳があります。

http://www.linux.or.jp/JM/html/tcpdump/man1/tcpdump.1.html

No. 2531 # CZ 2002/02/25 (月) 18:02:30
おっと、WinDump独自の説明はやはり英文で読まなくてはいけないようですが。

No. 2532 # 高井あた 2002/02/25 (月) 22:00:49
ありがとうございます。
日本語のマニュアル頂きました。
より深く使えそうです。

私の環境は、メインマシンにWindows98+Apacheとサブマシンに
FreeBSD+ApacheがおうちLAN(10Base-Tをリバースケーブル)で、
つながっていて、実験につかってます。
それとは別に外界はWindowsマシンのPHS(H")ダイアルアップで
接続しているのですが、無指定でWindumpを起動したらいきなりPPPを
監視始めて、本当に監視して欲しかったLANの方はだんまり…。

それで調べていたのですが、-i で監視インターフェイスを指定するのは
tcpdumpと同じでした。
ただWindumpにはインターフェイスを探すオプション-D があり、
-D を使って使えるインターフェイスを表示して、
そこからインターフェイス名を拾って使うようです。

Telnetでいろいろ見ているんですが、
昨日はchargen に突っ込んでTelnetが固まってリセットする羽目に(笑)。

No. 2533 # Hiro [E-mail] 2002/02/26 (火) 07:57:42
こんばんは。
まだNetscapeのインストールにつまづいています。
経緯を記します(ちょっと長くなりますが・・)ので、なにかアドバイスいただけないでしょうか。
よろしくお願いします。

ーーー

http://www.sun.com/software/solaris/netscape/getnetscape476.html
からjapaneseをクリックし、そこからnetscape4.76をダウンロード

ダウンロードしたファイル名は
Japanese[1].tar.Z

解凍すると・・
NSCPjacom
NSCPjecom
NSCPjpcom
NSCPjucom
という四つのディレクトリができる。
中を見てみるとどれも構造は同じで
install pkginfo pkgmap reloc
というファイルやディレクトリの構成

ここで
pkgadd -d `pwd`
とすると

1 NSCPjacom Japanese(common)Netscape Communicator
                        (sparc)10.4.76,REV=2001.01.17.19.51
2 NSCPjecom Japanese(EUC)Netscape Communicator
                        (sparc)10.4.76,REV=2001.01.17.19.51
3 NSCPjpcom Japanese(PCK)Netscape Communicator
                        (sparc)10.4.76,REV=2001.01.17.19.51
4 NSCPjucom Japanese(UTF-8)Netscape Communicator
                        (sparc)10.4.76,REV=2001.01.17.19.51

とでます。
これら4つの違い?がよくわからず、とりあえず1のみインストールし、successfulはでました。

ただ、その後、起動をどうしてよいものやらわからず、
どこにどうインストールされたのかもよくわからず・・(苦笑)
とりあえずnetscapeをさがしました。

# find / -name netscape
/usr/openwin/lib/locale/ja/netscape
/opt/local/jakarta-tomcat-3.2.4-src/src/native/netscape
/opt/pkg/NSCPjecom/reloc/NSCPcom/lib/locale/ja/netscape
/opt/pkg/NSCPjpcom/reloc/NSCPcom/lib/locale/ja_JP.PCK/netscape
/opt/pkg/NSCPjucom/reloc/NSCPcom/lib/locale/ja_JP.UTF-8/netscape
/opt/NSCPcom/lib/locale/ja/netscape
/opt/NSCPcom/lib/locale/ja_JP.PCK/netscape
/opt/NSCPcom/lib/locale/ja_JP.UTF-8/netscape

全部、ディレクトリでした・・。
なにをしようとしたのかというと、
# netscape &
で起動できるかなあ・・?
と考えたのですが・・
一応、これらディレクトリのある場所でコマンドを打ってみましたが、起動はしませんでした。

その他、netscape 以外にNetscapeというのも見つけ・・

# find / -name Netscape
/usr/openwin/lib/locale/ja/app-defaults/Netscape
/opt/NSCPcom/lib/locale/ja/app-defaults/Netscape
/opt/NSCPcom/lib/locale/ja_JP.PCK/app-defaults/Netscape
/opt/NSCPcom/lib/locale/ja_JP.UTF-8/app-defaults/Netscape
# file /usr/openwin/lib/locale/ja/app-defaults/Netscape
/usr/openwin/lib/locale/ja/app-defaults/Netscape: ASCII テキスト
# file /opt/NSCPcom/lib/locale/ja/app-defaults/Netscape
/opt/NSCPcom/lib/locale/ja/app-defaults/Netscape: コマンドテキスト
# file /opt/NSCPcom/lib/locale/ja_JP.PCK/app-defaults/Netscape
/opt/NSCPcom/lib/locale/ja_JP.PCK/app-defaults/Netscape: コマンドテキスト

で、
/opt/NSCPcom/lib/locale/ja/app-defaults/Netscape
のある場所で
# Netscape &
などは実行してみましたが、やっぱり起動はなされませんでした・・

以上まででいきづまっております・・
どうすれば起動するのでしょうか・・
(というか、インストールができているのかもはっきりとはしておらず・・)
アドバイスのほど、よろしくお願い致します。

No. 2534 # 68user 2002/02/26 (火) 09:06:50
>>2533 Hiro
とりあえず
> 2 NSCPjecom Japanese(EUC)Netscape Communicator
を入れてみて下さい。

No. 2535 # Hiro [E-mail] 2002/02/26 (火) 10:24:59
>>2534 68user
ありがとうございます。
今晩またいじりますので、やってみます。

2点わかれば教えていただきたいのですが

1、その場合、いったんインストールした
1 NSCPjacom Japanese(common)Netscape Communicator
はアンインストールしたほうがいいでしょうか?

2、あと起動方法ですが、netscapeがある適当な場所をさがして
# netscape &
と打ってみる、という方法でいいでしょうか?

よろしくお願いします。

No. 2536 # 68user 2002/02/26 (火) 11:03:11
>>2533 Hiro
実際にやってみました。

> http://www.sun.com/software/solaris/netscape/getnetscape476.html
> からjapaneseをクリックし、そこからnetscape4.76をダウンロード
サイズは 0.99MB だと思うのですが、これは日本語パッケージというか、
日本語 locale 用の設定ファイルです。

この前に English を選ぶと 16MB くらいのパッケージが落とせますので、
これをインストールします。pkgadd すると
    1 NSCPcom Netscape Communicator
                                  (sparc) 10.4.76,REV=2000.11.07.14.36
と出るはず。

実行ファイルは /opt/NSCPcom/netscape。メニューが英語でよいなら
このままで。

メニューを日本語化したいなら Japanese.tar.Z の方を入れます。とりあえず
2 だけ入れて
    % env LANG=ja_JP.eucJP /opt/NSCPcom/netscape
と実行すると、一部フォントが欠けてしまいました。
# そういえば昔 Solaris+Netscape の環境を使ってたときは
# リソース設定してたような気も。

まともに見られなくなったので
    # rm -rf /opt/NSCPcom/lib/locale/ja
として英語版に戻しました (pkgrm の使い方を知らないので)。

2 を入れてから 1 を入れようとすると conflict するようなので、
ひとつだけ選んでインストールすればよいでしょう。

No. 2537 # Hiro [E-mail] 2002/02/26 (火) 16:51:37
>>2536 68user
ありがとうござます
先に英語版入れないといけなかったのですか(苦笑)。
今晩試してみます。その後また報告します。

No. 2538 # 小僧 2002/02/26 (火) 17:13:51
始めまして、小僧といいます。
ここのトップからいける、Unixコマンド集にはいつもお世話になって
いるのですが、掲示板は今日始めて見つけました。
本を読んでも、ネットで調べてもわからない事があるので質問させてください。

シェルで、Telnetを実行し、別のホスト(仮名:X)にログインし、
コマンドを実行したいのです。

方法は、ファイルにTelnetで実行したいコマンド等を
記述し、それをパイプ(or リダイレクト?)で
実行すればいいと思っているのですが・・・
あまりに簡単すぎる事だから、本にも載っていないのでしょうか?

実行環境は、AIX4.3です。
インストールしたばかりなので、何か設定ファイルみたいな
ものが必要なのかな、とも思っています。

アドバイス、宜しくお願いいたします。

No. 2539 # CZ 2002/02/26 (火) 19:28:54
No. 2538 小僧 さん

もしやるとすれば、
・`telnet' でホストに接続
・ユーザ名が要求されるまで待つ
・ユーザ名を入力
・パスワードが要求されるまで待つ
・パスワードを入力
・コマンドを入力
といったところでしょう。Tera Term Pro(Windows版のTelnetクライアント)では、そんなマクロで自動ログイン機能を実現しています。

利用可能であれば `rsh' でやったほうがずっと楽とは思いますが。

No. 2540 # 小僧 2002/02/26 (火) 19:55:15
CZさん

返信、ありがとうございます。
記載されたレスの中で、質問をさせてください。
・ユーザ名が要求されるまで待つ
と、ありますが、「待つ」というのは
Sleepコマンドで適当な時間待つ、という事でしょうか?

誠に勝手で申し訳ございませんが、
ソースレベルでご教示して頂ければ幸いです。
お粗末ですが、私が作成したファイルを掲載します。

-----実行ファイル Start-----

#!/bin/ksh
cat telnet_file | telnet

-----実行ファイル End -----

-----telnet_file Start-----

open HOST_NAME
UserName
Password
date

-----telnet_file End -----

-----実行結果 Start-----

telnet> 試行中...
HOST_NAME に接続されました。
エスケープ文字は '^]' です。
getwinsize:ioctl: 指定されたファイルは ioctl システム・コールをサポートしていません。
接続がクローズされました。

-----実行結果 End -----


もちろん、HOST_NAMEやUserNameなどは、実際の環境に則している
値を設定しています。

宜しくお願いいたします。

No. 2541 # こうた 2002/02/26 (火) 21:42:35
OCNのADSLアクセスIP8「フレッツ」のサービスでの
PPPOEのLAN型接続において、
固定グローバルIPを割り当てたPC(サーバー)に対して、
外部のPCから(インターネット経由で)アクセスすると、HOST検索にやたら時間がかかります。(約18秒)
時間がかかっているのは、WINSOCKのgethostbyaddrという関数です。
上記の不具合を解決する方法を知っていましたら、教えていただけないでしょうか?ブローバンド・ルータに原因があるのかと思い、買い替えましたが、結果は同じでした。ちなみに、pingは0.1秒以内に帰ってきます。

No. 2542 # こうた 2002/02/26 (火) 21:58:18
OCNのADSLアクセスIP8「フレッツ」のサービスでの
PPPOEのLAN型接続において、
固定グローバルIPを割り当てたPC(サーバー)に対して、
外部のPCから(インターネット経由で)アクセスすると、HOST検索にやたら時間がかかります。(約18秒)
時間がかかっているのは、WINSOCKのgethostbyaddrという関数です。
上記の不具合を解決する方法を知っていましたら、教えていただけないでし
ょうか?ブローバンド・ルータに原因があるのかと思い、買い替えましたが、結果は同じでした。ちなみに、pingは0.1秒以内に帰ってきます。

No. 2543 # 68user 2002/02/27 (水) 01:00:14
>>2540 小僧
> cat telnet_file | telnet
こういうふうに使える telnet ってあるんでしょうか。どこかに
書いてあったのを参考に作っておられますか?

で、普通 telnet というのは人間が操作しますので、
    Login:
と表示されてからユーザ名をタイプし、
    Password:
と表示されてからパスワードをタイプし、その後コマンドを実行して
実行結果を見るわけです。

なので、これを自動化するには
    Login:
という文字列が相手側から送られてきてからユーザ名を送り、さらに
    Password:
という文字列が送られてきてからパスワードを送り、コマンドを送り、
その結果を取得する。ただしプロンプトとコマンドの実行結果を選り
分ける、というなかなか面倒な話なのです。CZ さんは「ユーザ名が
要求されるまで」と表現しておられますが、実際は単に文字のやりとり
をしているだけで、「プロトコル」といった大層なものがあるわけでは
ありません。

面倒なこと一切抜きで手抜きするならこんな感じ。
    ( sleep 2 ; echo USER ;
        sleep 2 ; echo PASS ;
        sleep 2 ; echo date ;
        sleep 2 ) | telnet localhost

ちゃんと真面目にやるなら expect コマンドや p5-Telnet など。
>>1335-1340 参照。

もっとよいのは rsh。さらによいのは ssh って感じですかね。
# http://www.jp.FreeBSD.org/QandA/HTML/1576.html


>>2542 こうた
> 外部のPCから(インターネット経由で)アクセスすると、
> HOST検索にやたら時間がかかります。(約18秒)
どの外部の PC 経由からでも名前解決に時間がかかるのですか?
そのマシンのプライマリの DNS サーバはどこにありますか?
どのマシンからでもその現象が発生して、DNS サーバが外部に
あるなら DNS サーバの問題でしょう。

もし可能ならば、実際のホスト名を出して下さい。

No. 2544 # Hiro [E-mail] 2002/02/27 (水) 09:44:14
>>2536 68user
報告
おかげさまで、netscapeのインストール、できました。
なお、先に入れてしまった日本語 locale 用は、pkgrmコマンドでアンインストールしてから本体をインストールしました。それからnetscapeを立ち上げたら、なぜかメニューも日本語化されていました?pkgrmでの削除では、すべてを削除したわけではないのかもしれないので?残存ファイルで日本語されているのか・・?
とにもかくにも、前のhotjavaより軽いし、なんとか動いて嬉しいです^^
ありがとうございました。

その後、tomcatを起動してブラウザからみたところ、examplesの動作確認等、簡単なところまではできました。
取り急ぎご報告まで。

No. 2545 # 小僧 2002/02/27 (水) 10:14:12
>>2543 68user

返信、ありがとうございます。
>> cat telnet_file | telnet
>こういうふうに使える telnet ってあるんでしょうか。どこかに
>書いてあったのを参考に作っておられますか?
いえ、どこにも記述されていません。
FTPで同じ方法を使っているシェルがあったので、
それを参考にして作ってみました。

68uesrさんが言われた(echo 〜)の方法で
多分うまくいくと思います。
貴重なアドバイス、ありがとうございました。

rsh、sshが使えれば楽なんですが、
r系コマンドはセキュリティ上、
ssh等は自分の知識不足のため、お客様へ説明が出来なく
(セキュリティに関する部分)Telnetでシェルを
記述する事になっているのです。

過去ログの方も参考にしながら、後は自分で書いていこうと思います。
ありがとうございました。


掲示板のレスの表示がうまくいかないかもしれませんが、
ご容赦下さい。

No. 2546 # 小僧 2002/02/28 (木) 12:57:47
お世話になります、小僧です。

先日は、Telnetで質問させて頂き、ありがとうございました。
その後、仕様変更に伴い、rsh、rcpコマンドを使用する事になりました。
そこで、新たに疑問が発生したので、質問させて頂きます。


このホームページの"Unixの部屋"の.rhostsに関する内容の所です。
以下、抜粋させていただきます。

----- 抜粋 Start -----
それとは逆に、hoge.fuga.com の ~/.rhosts に

foo.bar.com user1

と書いておくと、foo.bar.com にログインしているとき、hoge.fuga.com に対して、
rcp・rsh・ノーパスワードでの rlogin を使うことができる。
----- 抜粋 End -----

記述してある条件のもと、上記の設定を行う場合、
~/のディレクトリは、User2に記述するとして、
その場合、User1がhoge.fugu.comホストに対して
rshを行った場合、実行ユーザはUser2になるのでしょうか?

説明が分かり辛いと思いますが、
ご教示して頂ければ幸いです。

No. 2547 # CZ 2002/02/28 (木) 18:51:51
先ほどUNIXの部屋で `ログ' を全文検索したのですが、
コマンドに本文がないと改行されないのが気になりました。

例)
        astrolog 占星術のプログラムらしい bison 構文解析パーサ生成プログラム

根本的な解決策は思いつきませんが、とりあえずは
本文がない場合は「お尻P」を付ければいいのかな?

# UNIXの部屋に長いことお世話になっていながら
# htmlファイルの存在を全く意識していなかった
# ことに気づいた今日この頃です。

No. 2548 # 68user 2002/03/01 (金) 01:28:31
>>2546 小僧
> その場合、User1がhoge.fugu.comホストに対して
> rshを行った場合、実行ユーザはUser2になるのでしょうか?
そうです。foo.bar.com に user1 としてログインし、
    % rsh -l user2 hoge.fuga.com /usr/bin/id
などとすれば確認できます。

>>2547 CZ
ご指摘ありがとうございます。</P> を付けるようにしました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/unix/script/make-html

No. 2549 # CZ 2002/03/01 (金) 11:58:44
こんにちは。質問があります。

標準出力と標準エラー出力を画面に出力しつつ
エラー出力のみをファイルに保存したいのですが
shと標準的なUNIXのコマンドを使って実現可能な
ものなのでしょうか。

これまでに試したのは以下のような方法です。

--- test.sh ---
#!/bin/sh

echo stdout
echo stderr 1>&2
---

[その1]
        $ ./test.sh 2>error.log
    エラーが画面出力されないので×
    いざとなれば別の仮想端末で
        $ tail -f error.log
    としてもいいのですが。

[その2]
        $ ./tesu.sh 2>&1 | tee error.log
    エラー以外の出力も保存されるので×

No. 2550 # 68user 2002/03/01 (金) 12:44:49
>>2549 CZ
http://www.ainet.or.jp/~inoue/memo/sh-fd.html などを読みつつ
考えた結果、
    % (./test.sh > /dev/tty) 2>&1 | tee error.log
と、サブシェルを使わないとできないんじゃないか、という
結論になりましたがどうでしょう。

No. 2551 # CZ 2002/03/01 (金) 13:49:52
>>2550 68user さん
なるほど。
ttyでstdoutを出力してしまえば,
stderrが後に残るというわけですね。
(正しい表現が分かっていませんが。)

ありがとうございました。

No. 2552 # stone_free 2002/03/07 (木) 00:17:39
こんにちは。
今日、こちらのページをみて、suidというものを使えば、
とあるCGIを「nobodyじゃない権限で実行させたい」と
いう願いがかなうということがわかり、早速試してみました。
まず、こちらにサンプルでおいてあるwhoami.cgiをそのまま設置して
パーミッションをrwsr-xr-xとしたところうまく動きました。
その後、自作のCGI(nobodyでは動かしたことがあるもの)を同様に
nobodyでないユーザで動かそうと思ったら「Internal Server Error」
となってしまいました。

それで、うまくうごいた実績のあるwhoami.cgiを改造しながら原因を探した
ところ、どうやら「require 'jcode.pl';」を書いてしまうと
「Internal Server Error」となってしまうということがわかりました。
require 'jcode.pl';行をコメントアウトすれば動きます。

なんとか、この一行を含んでいるものも、setuidして動かすことは出来ない
ものでしょうか。
なにかよい方法がございましたらご教示ください。

宜しくお願い申し上げます。

No. 2553 # 68user 2002/03/07 (木) 13:33:42
>>2552 stone_free
まず、
    #!/usr/bin/perl
    require 'jcode.pl';
このスクリプトをコマンドラインから動かして下さい。カレント
ディレクトリに jcode.pl があればちゃんと動くでしょう。

suid したスクリプトを実行すると、perl は自動的に汚染モード
(taint mode) に切り替わります。いちいちスクリプトを suid して
web 経由で実行するのは面倒なので、perl に -T オプションを付けて
汚染モードで動作させます。
    #!/usr/bin/perl -T
    require 'jcode.pl';
今度は jcode.pl が見付からない、と言われるはずです。

require がライブラリを探すパスは @INC で設定されていますので、今度は
    #!/usr/bin/perl
    print "@INC\n";

    #!/usr/bin/perl -T
    print "@INC\n";
で違いを調べます。

#  perl -e 'print "@INC\n"'
#  perl -Te 'print "@INC\n"'
# としてもいいです。

すると、上の方では @INC の最後に `.' (カレントディレクトリ) が含まれて
いますが、-T を付けると `.' が含まれていないことがわかります。ドキュメント化
されていないのかもしれませんが、これは汚染モードの仕様なのでしょう。

というわけで、
    require './jcode.pl';
    require '/foo/bar/jcode.pl';
などと、@INC に頼らず require するか、require する前に
    push(@INC, '.');
すれば解決です。


その他、suidperl で動かすと PATH だとか umask だとかで文句を
言われることがあるかもしれませんが、いきなりブラウザ上で動作を
検証することはせず、必ず -T 付でコマンドラインから動作を確かめる
ようにして下さい。

No. 2554 # たこ。 2002/03/07 (木) 18:41:52
こんにちわ。早速なんですけど、教えて下さい。

以下のことを行った場合、
(1)javaのClassファイルをHP-UNIX上でコンパイル後、圧縮。
(2)windows2000にダウンロード後、CDに焼く。
(3)Solarisで解凍し、実行環境に投入。

で、Solarisで正常に動作するでしょうか?
javaだから出来るような気もするんですけど、やっぱりリコンパイルは必要な気もして。
よろしくお願いします。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 2555 # CZ 2002/03/07 (木) 21:45:24
ひとつ気づいたこと。

これまでずっと,tar + gzip 形式のファイルを展開するのに
    % tar zxvf hoge.tar.gz
といった順序でオプションを指定していました。

ところが,GNU Tar のマニュアルを見ると,
こんなことが書いてありました。

<http://www.linux.or.jp/JM/html/GNU_tar/man1/tar.1.html>
| tar への最初の引数は、オプション Acdrtux のいずれかでなくてはならない。
| この後にはどのオプション機能を指定する事も出来る。

最初の記述法は厳密に言うと間違いということに
なりそうなんですが,どんなものでしょうか。

No. 2556 # stone_free 2002/03/07 (木) 22:46:03
>>2553 68user
68userさん、有難うございました。
大変参考になりました。
おかげさまで、動かすことができました。
感謝感激です。

もうひとつ、教えていただいていいでしょうか。
今回の手順のひとつに
> perl に -T オプションを付けて汚染モードで動作させます。
> #!/usr/bin/perl -T
> require 'jcode.pl';
> 今度は jcode.pl が見付からない、と言われるはずです。
とありましたが、このとおりファイルに書いて
# perl test.cgi
としてコマンドラインで実行してみたのですが、
Too late for "-T" option at test.cgi line 1.
と出てしまいました。
#!/usr/bin/perlの後にオプションをつける場合は、クオートか
なにかでくくらないといけないのでしょうか。

また、「汚染モード」という物騒な名前はなにか訳があるのでしょうか。
やはり、本来のユーザと違う権限で実行できてしまうから危険である
ということでしょうか。

No. 2557 # 68user 2002/03/07 (木) 23:13:48
>>2554 たこ。
> で、Solarisで正常に動作するでしょうか?
Java のバージョンが合っていれば正常に動作するんじゃないでしょうか。

まぁ僕なら怖いので、Solaris でコンパイルして生成された class
ファイルを比較してみます。


>>2555 CZ
> tar への最初の引数は、オプション Acdrtux のいずれかでなくてはならない。
原文は
    The first argument to tar must be one of the options: Acdrtux
なので誤訳だと思います。
    tar に与える最初の引数の中には、必ず Acdrtux のうちの 1つを
    指定しなければならない
あたりでどうでしょうね。って、自信はないのですが。

No. 2558 # 68user 2002/03/07 (木) 23:31:54
>>2556 stone_free
> #!/usr/bin/perlの後にオプションをつける場合は、クオートか
> なにかでくくらないといけないのでしょうか。
原理を書き出すとまた長くなってしまうので割愛しますが、
    #!/usr/bin/perl -T
と書いたスクリプト hogescript を実行するには
    % ./hogescript
とします。

これは
    % /usr/bin/perl -T ./hogescript
と等価であって、
    % /usr/bin/perl ./hogescript
とは等価ではありません。

> また、「汚染モード」という物騒な名前はなにか訳があるのでしょうか。
ラクダ本では「汚染モード」と訳してあります。詳しくはこちらなど。
    http://www-sampei.ctrl.titech.ac.jp/perldoc/perl_20.html

No. 2559 # stone_free 2002/03/08 (金) 01:30:44
>>2558 68user
なるほど!よくわかりました。
重ね重ねありがとうございました。

No. 2560 # Moo [E-mail] 2002/03/09 (土) 12:23:55
    こちらのページのお陰で、サーバプログラミングに入ることが出来ました。
    CP/M、DOS、Windowsとやってきたのですが、サーバプ
ログラミングに入れなくて困っておりました。
    仕事でサーバ側のプログラムを組む必要に迫られ、Unixも知らな
いし、サーバサイドの概念もつかめなくていたのに、今ではFTPや
HTTP、POPもcronも使えるようになりました。
    ついでにPerlまで覚えてしまいました。

    黙って読ませていただくばかりでは心苦しく、お礼を述べさせて頂き
に参りました。
    今後もUnix勉強の基本ページとして利用させていただきます。
    親切で分かりやすいページを作って下さり有り難うございます。
    心より感謝申し上げます。

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