|
先ほどUNIXの部屋で `ログ' を全文検索したのですが、 コマンドに本文がないと改行されないのが気になりました。 例) astrolog 占星術のプログラムらしい bison 構文解析パーサ生成プログラム 根本的な解決策は思いつきませんが、とりあえずは 本文がない場合は「お尻P」を付ければいいのかな? # UNIXの部屋に長いことお世話になっていながら # htmlファイルの存在を全く意識していなかった # ことに気づいた今日この頃です。 |
|
>>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 |
|
こんにちは。質問があります。 標準出力と標準エラー出力を画面に出力しつつ エラー出力のみをファイルに保存したいのですが 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 エラー以外の出力も保存されるので× |
|
>>2549 CZ http://www.ainet.or.jp/~inoue/memo/sh-fd.html などを読みつつ 考えた結果、 % (./test.sh > /dev/tty) 2>&1 | tee error.log と、サブシェルを使わないとできないんじゃないか、という 結論になりましたがどうでしょう。 |
|
>>2550 68user さん なるほど。 ttyでstdoutを出力してしまえば, stderrが後に残るというわけですね。 (正しい表現が分かっていませんが。) ありがとうございました。 |
|
こんにちは。 今日、こちらのページをみて、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して動かすことは出来ない ものでしょうか。 なにかよい方法がございましたらご教示ください。 宜しくお願い申し上げます。 |
|
>>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 付でコマンドラインから動作を確かめる ようにして下さい。 |
|
こんにちわ。早速なんですけど、教えて下さい。 以下のことを行った場合、 (1)javaのClassファイルをHP-UNIX上でコンパイル後、圧縮。 (2)windows2000にダウンロード後、CDに焼く。 (3)Solarisで解凍し、実行環境に投入。 で、Solarisで正常に動作するでしょうか? javaだから出来るような気もするんですけど、やっぱりリコンパイルは必要な気もして。 よろしくお願いします。 |
|
ひとつ気づいたこと。 これまでずっと,tar + gzip 形式のファイルを展開するのに % tar zxvf hoge.tar.gz といった順序でオプションを指定していました。 ところが,GNU Tar のマニュアルを見ると, こんなことが書いてありました。 <http://www.linux.or.jp/JM/html/GNU_tar/man1/tar.1.html> | tar への最初の引数は、オプション Acdrtux のいずれかでなくてはならない。 | この後にはどのオプション機能を指定する事も出来る。 最初の記述法は厳密に言うと間違いということに なりそうなんですが,どんなものでしょうか。 |
|
>>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の後にオプションをつける場合は、クオートか なにかでくくらないといけないのでしょうか。 また、「汚染モード」という物騒な名前はなにか訳があるのでしょうか。 やはり、本来のユーザと違う権限で実行できてしまうから危険である ということでしょうか。 |
|
>>2554 たこ。 > で、Solarisで正常に動作するでしょうか? Java のバージョンが合っていれば正常に動作するんじゃないでしょうか。 まぁ僕なら怖いので、Solaris でコンパイルして生成された class ファイルを比較してみます。 >>2555 CZ > tar への最初の引数は、オプション Acdrtux のいずれかでなくてはならない。 原文は The first argument to tar must be one of the options: Acdrtux なので誤訳だと思います。 tar に与える最初の引数の中には、必ず Acdrtux のうちの 1つを 指定しなければならない あたりでどうでしょうね。って、自信はないのですが。 |
|
>>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 |
|
>>2558 68user なるほど!よくわかりました。 重ね重ねありがとうございました。 |
|
こちらのページのお陰で、サーバプログラミングに入ることが出来ました。 CP/M、DOS、Windowsとやってきたのですが、サーバプ ログラミングに入れなくて困っておりました。 仕事でサーバ側のプログラムを組む必要に迫られ、Unixも知らな いし、サーバサイドの概念もつかめなくていたのに、今ではFTPや HTTP、POPもcronも使えるようになりました。 ついでにPerlまで覚えてしまいました。 黙って読ませていただくばかりでは心苦しく、お礼を述べさせて頂き に参りました。 今後もUnix勉強の基本ページとして利用させていただきます。 親切で分かりやすいページを作って下さり有り難うございます。 心より感謝申し上げます。 |
|
おっと、私もこのページにお礼を言いに来たのですが プチ先駆者が(笑) このページには大変お世話になっています ネットワークプログラミングの部屋でファイルディスクリプターという 概念を初めて知りました、僕は学生なのですが将来こういう方面の仕事に つきたいと思ってます。大変に参考になるページでした このページの更新、たのしみにしてますm(。。)m |
|
>> 2557 いろいろと調査してみた結果、windows上でコンパイルしたものを圧縮してsolarisに持っていっても、JAVA周りの環境さえ同じなら正常に動作するということなので、大丈夫だと思います。 ありがとうございました。 |
|
お世話になります、小僧です。 AIX上での文字コードに関してお聞きしたい事があります。 ファイルの文字コードを確認するコマンドというのは 存在するのでしょうか? 例えば、「このファイルの文字コードはShift-JISだな」などの 判断を行えるようなコマンドの事なのですが。 それと、iconvを行う事が出来る文字コードは、 "/usr/lib/iconv"ファイルに登録されているようなのですが、 このファイルはデフォルトでは存在しないのでしょうか? ご存知の方がいらっしゃいましたら、宜しくお願い致します。 |
|
kccなんてコマンドがありましたけど、AIXに存在するかどうかは 不明です。 Ex: kcc -c kannji_file.txt ん〜ちょっと調べてみると、どうもLinux系だけみたいだなぁ・・・ |
|
はじめまして、 現在色々とcgiを作成しており、 色々とよくわからないバグを調べている内 たどり着いた次第です。 他のサイトではあまり解説されていない ヘッダの解説など大変助かりました。 これからも更新楽しみにさせていただきます。 |