• ベストアンサー

パーミッションの三つの項目について

三つの項目を選ぶようになっていますが、イマイチ理解できないので質問します。 わからないのは読み取りと実行の違いです。 読み取りをした上で実行をするのが電子計算機なのではないでしょうか? 例えば700と設定したCGIファイルがあるとします。 そのCGIスクリプトは、訪れるたびにHPのバックカラーが変わる…という単純なものです。 さて、そのHPに第三者が閲覧要求してきました。 700に設定されたそのHPは、その第三者は見ることもできないのでしょうか? では、701に設定しました。 第三者は実行の許可はされましたが、読み取りの許可がされていません。 読み取れないHPを実行するなんて…意味がわからないのです。 だから、結局、仕方が無いから 設定を705にしてしまうのです。 私の頭の中では、 700…友人の家にある本棚の中身がカーテンで隠されて全く見えない。だから何もできない。 701…友人から本棚の中を見せてもらい、中にはプレステソフトがたくさんあって、プレイを許可された。 702…メモリーカードをもらった。 703…プレイしてセーブしてもいいよと言われたが、プレイしたいソフトがわからない。 704…ソフトのタイトル一覧は教えてもらった。でもプレイもセーブもできない。 705…ファイナルファンタジーのプレイ許可をもらった。 706…ファイナルファンタジーの存在を教えてもらい、メモリーカードももらった。でもプレイ許可は得てない。 707…ファイナルファンタジーの存在も、プレイ許可も、メモリーカードも全てそろった!やっとまともにプレイできる。 ちょっと長い例え話になりましたが、 読み取りと実行は同じだと思っちゃうんですよね。だったら、パーミッションの項目は二種類でいいんではないかと…。 でも三種類と言うことは、各々意味が違うのでしょうね。 どなたかご存知の方、教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

各権限の意味は、以下の通りです。 読み込み権限(read permission):ファイルの読み込みに対する権限 書き込む権限(write permission):ファイルの書き込みに対する権限 実行権限(execute permission):ファイルの実行に対する権限 実行するためには実行権限がある事はもちろんですが、読み込み権限もないと実行する事は出来ません。 また、実行形式ファイルでも実行権限がないものは実行する事は出来ません。 -------8<------- 以下。一般的にプロバイダーのWEBサーバに一ユーザ(例えばuser)としてHTMLファイルやCGIファイルを置くと場合で、かつWEBサーバプログラムは一ユーザから見て他ユーザ(www)で実行され、グループも異なると仮定した場合。 >700に設定されたそのHPは、その第三者は見ることもできないのでしょうか? ブラウザから参照という事であるなら、誰も見る事は出来ないです。 そのファイルの所有者であったとしても、ブラウザから参照する場合は、第三者(その他ユーザ)からのアクセスと同じです。 これは、WEBサーバプログラム実行された時のユーザ(www)、つまりファイルの所有者(user)からみれば第三者(その他ユーザ)からのアクセスになるためです。 >では、701に設定しました。 >第三者は実行の許可はされましたが、読み取りの許可がされていません。 これは、第三者(その他ユーザ)に対する実行権限はありますが、読み込み権限がないのでHTMLファイルは参照できますが、CGIファイルの実行は出来ません。  

investorgoo
質問者

お礼

よくわかりました。ご回答有難うございました。 またよろしくお願いします。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2です。 読み込み権限がなくても、実行権限だけで実行できるような記述をしてしまいましたが、 #3の方のご指摘通り >実行するためには実行権限がある事はもちろんですが、読み込み権限もないと実行する事は出来ません。 読み込み権限も同時にないと実行することはできません。 <(_ _)>すみませんでした。

investorgoo
質問者

お礼

ご丁寧に有難うございました。 全くの初心者で、やっとperlの変数の種類が、配列とスカラーがあるんだなと知ったレベルです(^^ゞ 低レベルな質問で、このサイトにはチョコチョコと質問の投稿をしていますので、また機会があればご教授いただければと思います。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

読み取りは、この場合ファイルの中身を見ることができるかどうかということで、 実行する場合には、そのOSのシェルにこのファイルを実行せよと言えばいいだけなので、中身をユーザが見る必要はない(コマンド名としてのファイル名が判っていればよい) ということだと思います。

回答No.1

元々UNIX系のOSでよく使いますね。 昔はコンピューター自体が高価だったので1つのコンピューターを複数の人間で使っていたのです。 (ネットワークのスター型をイメージしてみてください) マルチタスク・マルチユーザーのOSだからグループごとにアクセス制限もできるようになっているのです。 たとえば学校で1つのコンピュータを使っているとしてでA組・B組としておきましょうか・・ それぞれの組で編集したいものがあった場合、他の組には見られたくないもの、実行されたくないもの等細かく設定できるようになっているわけですね。 で数字の意味ですが、頭から所有者・グループ・全員です。 で数字の意味はrは4の位wは2の位xは1の位を2進数でそれぞれフラグを立ててやれば出てきます。 いろいろ解説サイトがあるのでググって見てください。 LINUXやBSD系のサイトには多く見られます。 いまだに普通に使いますから・・・ 600とかも^^;

investorgoo
質問者

お礼

歴史あり…ですか。 もう少し簡単なシステムになればいいのに…と思いますネ(^^ゞ

関連するQ&A