|
下記コマンドでも同じエラーになりました。 昨日、リンクを外してしまったのですが、、、それが原因でしょうか。。。 昨日の時点では、同じノードでした。 # chmod 6555 /bin/passwd # ls -ali | grep passwd 313716 -r-xr-xr-x 1 root 96392 Nov 16 11:57 nispasswd* 313666 -r-sr-sr-x 1 root 96392 Feb 24 1999 passwd* 313717 -r-xr-xr-x 1 root 96392 Nov 16 11:57 yppasswd* |
|
mmさん、ありがとうございます。 UNIX系では、無いのですかねぇ〜。 残念です。 |
|
> 昨日、リンクを外してしまったのですが、、、それが原因でしょうか。。。 多分これが原因じゃないとは思うんですが、元に戻すには # rm nispasswd yppasswd; ln passwd nispasswd; ln passwd yppasswd です。で、どういうエラーなのかいまいち掴めないんですが、 > 「passwd(SYSTEM): ○○○○ does not exist アクセス権が与えられていません。」 ○○○○ には何が入るんですか? ユーザ名? もし NIS 使ってたり、shadow 化してるなら、原因を突き止めづらいですね。 まわりのサーバと /etc のパーミッションを見比べてみてはどうでしょう。 # こーゆーときは truss が便利なんだけど、suid プログラムには # truss 使えないのね…。 > spawn系の関数は、MS-DOSに特有のものです。 なるほど。ラクダ本の TCP サーバの例で sub spawn というのが あるんで、C の新しい関数で似たものがあるのかと思ってました。 |
|
始めまして。 「ネットワークプログラミングの基礎知識」 非常に面白かったです。 これからもがんばってください。>68userさん さっそく質問なんですが。 うちにあるLinux(Vine 1.1)のApache1.3.3は CGIが「自分 グループ 他人」の「他人」の権限で 動くんです。 ところがCGIが他人の権限で動くのはまずいらしい ので自分権限で動くようにしたいのですがどうのように 設定ファイルを書きかえれば良いのでしょうか。。 調べてみた所,User命令 (http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#user) とかでやるんでしょうか? |
|
> これからもがんばってください。 どもども。ありがとうございます。 > CGIが「自分 グループ 他人」の「他人」の権限で動くんです。 正確には、nobody 権限で動く、でしょうね。 > ところがCGIが他人の権限で動くのはまずいらしいので これは管理者の方針によります。web しか置いていないサーバでは 各ユーザ権限で動かす方が安全でしょうけど、学校のようにメールや いろんなデータが置いてあるサーバで各ユーザ権限で動かすのは 危険 (CGIに穴があるとメールなども全て見られてしまう)、 という考え方もあります。 > 調べてみた所,User命令 それは、例えば apache を nobody 権限でなく www (というユーザ) の権限で動かしたい場合に使います。 例えば locate のデータなども、nobody 権限で作成されるので、 本来 apache は nobody 権限でなく www などの専用アカウントを 作って、その権限で動かした方が安全です。 で、結論としては http://japache.infoscience.co.jp/japanese_1_3/manual/suexec.html を使います。これを使うと CGI/SSI ともに各ユーザ権限で動きます。 長々と語っておいてアレですが、僕は suExec を設定したことはないです。 上のリンクにはコンパイルがどうこうって書いてありますが、必要なのかなぁ。 ソース持ってきて % ./configure --enable-suexec とするのではダメなんでしょうか。いろいろ試してみて下さい。 これとは別に、cgiwrap というのを使う方法もあります。 ftp://ftp.win.or.jp/pub/network/www/cgiwrap これだと CGI だけ各ユーザ権限で動きます。コンパイルして /usr/local/apache/cgi-bin/cgiwrap にインストールして、 http://localhost/cgi-bin/cgiwrap/~username/cginame.cgi とすると、/~username/cginame.cgi が username の権限で動きます。 httpd.conf に AliasMatch "^/([^/]+)/cgi-bin/(.*)$" "/cgi-bin/cgiwrap/$1/$2" などと書いておくと、/~username/cgi-bin/hoge.cgi にアクセスしただけで 各ユーザ権限で動かすこともできますね。 ん〜長くなってしまった。 |
|
>なるほど。ラクダ本の TCP サーバの例で sub spawn というのが spawn ってどういう意味なんだろうと以前から疑問だったので調べたら、 魚などの産卵という意味なのですね。 MS-DOSの spawn は、exec(3)を真似たものだと思います。 MS-DOSの主なコンパイラで使えるようです。 exec系のライブラリもありますが、例えばBorland C++の場合 int spawnve(int mode, char *path, char *argv[], char *envp[]); で、mode に P_WAIT を指定すると、親プロセスはそのままにして、 空きメモリで子プロセスを実行し、終了後に親プロセスに制御を戻します。 mode を P_OVERLAY にすると、execve() と同じになります。 |
|
いつもありがとうございます。みのるです。 > 「passwd(SYSTEM): ユーザアカウント does not exist アクセス権が与えられていません。」の件。 リンク等、元に戻す前に、"passwd"コマンド復活しました。現在、以下の状態です。 313666 -r-sr-sr-x 3 root 96392 Feb 24 1999 nispasswd* 313666 -r-sr-sr-x 3 root 96392 Feb 24 1999 passwd* 313666 -r-sr-sr-x 3 root 96392 Feb 24 1999 yppasswd* ただ、原因はまだ解りません。trussが使えたので、見てみてはいるのですが、不明です。 ここで質問なのですが、"root"以外のユーザでも、コマンド書換(もしくはアクセス権付与)は 可能でしょうか?私どものサーバセキュリティ上に問題があるような気がしてなりません。 |
|
> trussが使えたので なるほど。root なら使えるんですね。 > "root"以外のユーザでも、コマンド書換(もしくは > アクセス権付与)は可能でしょうか? root 以外の一般ユーザが /usr/bin/passwd を書き換えたり、 パーミッションを変更させることができるか、ということですか? もちろん普通は不可能ですが、セキュリティホールがある場合は その限りではありません。 「passwd が効かなくなった=クラック」というわけでも ないので、しばらく様子を見てはどうでしょう。 |
|
>68user 1999/11/17(水) 18:50 >> CGIが「自分 グループ 他人」の「他人」の権限で動くんです。 >正確には、nobody 権限で動く、でしょうね。 nobody権限というんですか。。 知らなかった(^^; >> ところがCGIが他人の権限で動くのはまずいらしいので >これは管理者の方針によります。 むむー なるほど。 ケースバイケースとかいうやつですか。 >で、結論としては > http://japache.infoscience.co.jp/japanese_1_3/manual/suexec.html >を使います。これを使うと CGI/SSI ともに各ユーザ権限で動きます。 > >長々と語っておいてアレですが、僕は suExec を設定したことはないです。 >上のリンクにはコンパイルがどうこうって書いてありますが、必要なのかなぁ。 >ソース持ってきて > % ./configure --enable-suexec >とするのではダメなんでしょうか。いろいろ試してみて下さい。 suEXEC。これですか Apacheのバージョンアップとともに試してみます。 上手くいったら報告に参りたいと思います。 >これとは別に、cgiwrap というのを使う方法もあります。 > ftp://ftp.win.or.jp/pub/network/www/cgiwrap > >これだと CGI だけ各ユーザ権限で動きます。コンパイルして >/usr/local/apache/cgi-bin/cgiwrap にインストールして、 > http://localhost/cgi-bin/cgiwrap/~username/cginame.cgi >とすると、/~username/cginame.cgi が username の権限で動きます。 >httpd.conf に > AliasMatch "^/([^/]+)/cgi-bin/(.*)$" "/cgi-bin/cgiwrap/$1/$2" >などと書いておくと、/~username/cgi-bin/hoge.cgi にアクセスしただけで >各ユーザ権限で動かすこともできますね。 suEXECのインストールに失敗したらこちらも試してみます。 |
|
> http://japache.infoscience.co.jp/japanese_1_3/manual/suexec.html やっぱりこれって古いのね。英語版の方を見て下さい。 http://japache.infoscience.co.jp/apache/docs/suexec.html うちでも apache1.3.9 を入れてみましたが、configure,make,make install で 簡単にインストールでき (configureのオプションを付けたり、httpd.conf の 手直しはしましたが)、suExec もうまく動きました。 > nobody権限というんですか。。 わかっておられるかもしれませんが念のため書いておきますと、他人の権限で 動くことを「nobody 権限」と呼ぶのではないです。実際に nobody という アカウントは実在しており (see /etc/passwd)、その権限で httpd は動いている、 ということです。 なんで nobody で動くかというと、httpd.conf に User nobody と書いてあるからです。 |
|
ちょっと時間が取れなくて 返事遅れました。(_ _) apache1.3.9は普通に? configure,make,make install でインストールできました。 suEXECも無事インストールできました。 CGIなどが各ユーザー権限で動いてました。 ありがとうございます。 >わかっておられるかもしれませんが念のため書いておきますと、他人の権限で >動くことを「nobody 権限」と呼ぶのではないです。実際に nobody という >アカウントは実在しており (see /etc/passwd)、その権限で httpd は動いている、 >ということです。 えぇ。その辺は大丈夫です。 |
|
ジェダイナイト、9面のシークレットエリア誰か教えて下さい。 |
|
ネットワークプログラミングの基礎知識、凄いです。素晴らしいです。 私のような無知にでもできてしまってちょっと怖いです。 (ほとんど切り貼り状態なんですが・・) FTPの項についてなんですが 「# FTPサーバに、子プロセスが待っているIPアドレスとポートの情報を渡す」 というのがありますよね。ftptras.plで初めて子プロセスは出てくるのでは。 それ以前の例示には「子プロセス」というコメントは必要無いのでは。 (ちょっとここで悩んでしまったので・・・。) |
|
> それ以前の例示には「子プロセス」というコメントは必要無いのでは。 どもども。ミスですね。直しておきます。 最初は fork しないと ftp クライアントは作れないと思ってました。 結局それは誤解だったので書き直したのですが、コメントの修正を 忘れてたようです。 # ftptrans で fork してるのも怪しい。ほんとに1プロセスで # できないのかなぁ? |
|
う〜〜ん。 ローカルのホスト名を得るにはどうすれば良いですか? 開いたSOCKETから手に入れる以外に適当な方法て無いですかしらん。 シェルコマンドは使わずにperlの関数だけで。 RFCの日本語訳ってほんと便利ですよね。感謝しながら読んでます。 PASVの返事て227だけみたいですね。あとは全部エラーみたい。 それと(x,x,x,x,x,x)の「括弧」が付かない場合もあるようですね。 正規表現もむつかしいけど頑張ってるとこおろです。 |
|
> ローカルのホスト名を得るにはどうすれば良いですか? 試してませんが、とりあえず http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.24 http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlfaq9.html#How_do_I_find_out_my_hostname_do ここらあたりでうまくいかないですか? > あとは全部エラーみたい。 > それと(x,x,x,x,x,x)の「括弧」が付かない場合もあるようですね。 なるほど。ところで、こーゆーのがネットワークプログラムのヤな ところですよね。相手があってのものだから「これで正しいかどうか」 「完璧かどうか」がわからないという。 あと、真面目に作って配布でもするつもりなら http://hp.vector.co.jp/authors/VA002682/rfc1123j.htm も読んで下さい (もう読んでるかもしれませんが)。 # あと、data-connection の peer-port が 20(ftp-data) かどうかの # チェックもね。 |
|
68USERさんの中で最も得意なプログラミング言語はなんですか? |