vine-users ML アーカイブ



[vine-users:059810] Re: 属性変更しても外部から見える

  • From: "OOSATO,Kazzrou" <kazz@xxxxxxxxxxxxxx>
  • Subject: [vine-users:059810] Re: 属性変更しても外部から見える
  • Date: Sun, 20 Apr 2003 05:24:35 +0900
おおさとです。

> From: Wan Shigyoku <wanshi_vspec@xxxxxxxxx>
> Subject: [vine-users:059806] Re: 属性変更しても外部から見える
> Date: Sun, 20 Apr 2003 00:18:57 +0900

> 問題は上に書いているように、Apacheを動かすUser,GroupIDとファイル所有者の
> User,Groupが等しくないと、cgi の属性を711 にすると動かないということです。
> (ちなみに等しくすると、cgi が711で動作することは確認しています)

やりたいことが、いまひとつ具体的に見えないのですが、引っかかっ
ているのは、このような問題でしょうか?
CGI とか apache とかの話はひとまず置いといて。


[実験]おなじみの hello,world です。

$ cat hello.c 
#include <stdio.h>
int  main(void)
{
    printf("%s\n", "hello, world.");
    return  0;
}
$ cc hello.c -o hello
$ ./hello
hello, world.
$ chmod 111 hello
$ ./hello
hello, world.
というように、実行属性だけで動きます。

では、つぎに perl 版。
$ cat hello.pl 
#! /usr/bin/perl
print "hello, wirld.\n";
$ ./hello.pl        
hello, wirld.
$ chmod 111 hello.pl
$ ./hello.pl
Can't open perl script "./hello.pl": 許可がありません
というように、読み取り属性を取ると動きません。

perl に限りませんが、 #! interpreter と書かれた実行 script は
まず、interpreter が起動され、その interpreter が script file
を読みこんで実行します。(この動作に関しては man bash など)
したがって、script file には interpreter が実行されるユーザに
対する読み取り属性は必須です。


-- 
  4月19日17時29分更新のYAHOO!Weatherによると --
    東京23区の本日の花粉はやや多いです。明日の花粉は少ないです。
  kazz@xxxxxxxxxxxxxx / 大里和朗