- ベストアンサー
echo \$USER について
このコマンドをCGIにのせて、どうにかユーザーIDを取り出そうと思ったのですが、 何もかえってきませんでした。もしかすると、WEBアプリケーションからはだれが使用してるか分からないからですか? パソコンのユーザーIDをCGI上に表示したいなと思っています。(パソコンにログインするときにでるIDです.) 質問の仕方がへたですいません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>ちなみに現在CGIもJAVASCRIPTも使ってます。 >ということはできるという意味でしょうか? >それとも、ログイン管理をするために新しくWEBアプリを使うためのユーザーIDを作ったりする必要があるということですか? パソコンにログインしているユーザー名を取得する事は出来ますが、 ちょいと手間です。 まず、JavaScriptを埋め込んだHTMLまたはcgiを作り JavaScriptでログインユーザー名を取得し、 それを、目的のcgiにリンクで引数として渡すなどをすれば 取得は出来ます。 やり方としては以上なんですが、 一段階噛ましておかないといけないので少し手間なわけです。 また、ブラウザによってはJavaScriptの動作のON/OFFが出来るブラウザもあるので 絶対に取得出来る保証もありません。 なので絶対に取得されたい場合は上記にお話しされている >ログイン管理をするために新しくWEBアプリを使うためのユーザーIDを作ったりする必要があるということですか? の方が安全かもしれません。
その他の回答 (3)
- urakids
- ベストアンサー率77% (7/9)
間違っていたらごめんなさい。 web上からcgiを見に来ているパソコンのUIDを知りたい訳ですよね? もしそうでしたら、ログイン管理などをすればわかるかも知れませんが、 単体だけでは難しいというか、無理ですよ。 cgiとJavaScriptや、vbscriptなんかを使えば出来ますけど。
補足
そうですか、無理ですか分かりました。ちなみに現在CGIもJAVASCRIPTも使ってます。ということはできるという意味でしょうか?それとも、ログイン管理をするために新しくWEBアプリを使うためのユーザーIDを作ったりする必要があるということですか?
- t-okura
- ベストアンサー率75% (253/335)
CGI がどんなユーザ権限で実行されているか知りたいのですね。 $ENV{USER} を表示すればよいです。 OS コマンドが使えるのであれば $USER = `/usr/bin/id`; で取り出してもよいです。 また、 open OUT, '>', 'test.txt'; print OUT "Hello\n"; close OUT; で、ファイルを作成し、FTP で作成したファイルの所有者を 見てもよいと思います。CGI をアップロードできるのだから FTP できますよね。
補足
ご返答ありがとうございます. 実際にやってみると、USERIDはWWWRUNでした。ようするに個人を特定することはできない? ということでしょうか。CGI上にPC使用者の名前あるいは、IDを表示したかったのですが、なかなかうまくいかないです. いま、LDAPというものを調べていますが、方向性はあってると思いますか?
- urakids
- ベストアンサー率77% (7/9)
echo \$USER だけでは判らない事、多々といった感じですが。 まず、perlにechoといったコマンドはありません。 なのでまず動かなくて当たり前です。 そして\$USERが何を指しているのかわからないのですが、 普通だと$USERのリファレンスを参照しているので、 やはり期待に添える物はとれないかと思います。
補足
お返事ありがとうございました。 説明不足で申し訳ありません。 my $test =`echo $USER` と実際は記述しております。 私の中では、環境変数の$ENV{'$USER'}という感じかなという位置づけです。 test.plの中にmy $test =`echo $USER` の記述をすると、ユーザーIDが 帰ってきますが、CGIの中にかくと、値がかえってきませんでした。 もし何か、他にいいアイディアがあれば、お願いします。
お礼
ありがとうございました。 Javascriptについては、うといですがいろいろ調べて試してみたいと思います。