パーミッションの自動設定(FFFTPを使う場合)

ところで、パーミッション(権限・属性)の設定ですが、FFFTPというソフトを使うと、簡単に設定できます。

FFFTPを起動した後に、上に並んでいるメニューから、

「オプション」→「環境設定」を選択します。

すると、新たなウィンドウが表示されるので、「転送3」タブを選びます。

この画面で「アップロードするファイルの属性」の設定をしておくことができます。

通常の場合「.」(ピリオド)の後に続く3文字で、ファイルの種類が分かりますので、その種類毎に、あらかじめアップロードするときのパーミッション(権限・属性)の設定をしておくと便利です。

私の場合、下記のような設定にしてあります。

  • .cgi:755
  • .pl :755
  • .pm :755

この設定をしておくことで、CGI設置における、パーミッション(権限・属性)の問題のほとんどは解決すると思います。


ついでに、パーミッションとは関係ないですが、「オプション」→「環境設定」の「転送1」タブから、これら3種類のファイルを「アスキーモードで転送」にしておくと、さらにトラブルは減りますよ。

パーミッションの指定の仕方 その2

実際のパーミッション(権限・属性)の表示の仕方には、2通りの方法があり、どちらも慣れないと少々面倒です。

3桁の数字を使って、表示する方法

今回紹介する2つめの方法は、3桁の数字をつかって、パーミッション(権限・属性)を表示する方法です。

よくパーミッションの説明でHTMLファイルは「644」、CGIは「755」に設定してくださいね、という言い方をします。

今回は、この数字の意味を考えてみたいと思います。



前回、書いたように、普通のHTMLファイルの場合には、下記のようにパーミッション(権限・属性)を設定することになります。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否×××××

この「○」をまずは、下の数値で置き換えてください。

  • 読み込める:4
  • 書き込める:2
  • 実行できる:1

さらに、前回と同様「×」を「0」に置き換えて書いてみましょう。

すると、上のパーミッションは、下のように「420400400」と表現できます。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否×××××
数値

そして、さらにここから、もう一加工します。

最初の3つの数字、真ん中の3つの数字、後ろの3つの数字を足してみましょう。

区分計算式計算結果
最初の3つの数字4+2+06
真ん中の3つの数字4+0+04
後ろの3つの数字4+0+04

実は、パーミッションを表現する2つ目の方法というのは、この計算結果である3つの数字「644」を使って表現する方法なのです。


次に、CGIプログラムのパーミッション(権限・属性)を考えてみると、通常の場合は下記のように設定します。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否××

そこで、これを上と同じ法則で、3桁の数値を算定すると、「○○○○×○○×○」→「421401401」となります(下図参照)。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否××
数値

その結果、3桁の数値は下記のように計算されます。

区分計算式計算結果
最初の3つの数字4+2+17
真ん中の3つの数字4+0+15
後ろの3つの数字4+0+15

つまり、CGIファイルのパーミッションは「755」というふうにも表現されるわけですね。

パーミッションの指定の仕方 その1

ところで、実際のパーミッション(権限・属性)の表示の仕方には、2通りの方法があり、どちらも慣れないと少々面倒です。

rwxという文字を使って、表示する方法

まず、一つ目の方法は、「r」と「w」と「x」という文字をつかって、9桁の文字でパーミッション(権限・属性)を表示する方法です。

これは、FFFTPを起動した際に、右側の欄(インターネットに公開するサーバ)の「属性」という欄に表示されているものになります。

例えば、普通のhtmlファイルならば、「rw-r--r--」等と表示されていると思います。

これには、どんな意味があるかを考えてみたいと思います。



前回、書いたように、普通のHTMLファイルの場合には、下記のようにパーミッション(権限・属性)を設定することになります。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否×××××

この時、一番下の「○」とか「×」とか書いてある部分に着目してください。

この「○」をまずは、下の文字で置き換えてください。

  • 読み込める:「r」
  • 書き込める:「w」
  • 実行できる:「x」

次に「×」を「-」で置き換えてみてください。

このようにすると、一番下の「可否」という行の「○○×○××○××」を「rw-r--r--」というふうに表現されることになります。


次に、CGIプログラムのパーミッション(権限・属性)は下記のように設定することが多いです。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否××

そこで、これを上と同じ法則で、「r」「w」「x」を使って表現をすると、「○○○○×○○×○」→「rwxr-xr-x」と表現されることになります。

HTML・CGIへのパーミッション(権限・属性)の指定方法

では、実際にパーミッション(権限・属性)をどう指定すればいいか、考えてみましょう。


通常のHTMLファイルの場合

通常のHTMLファイルの場合には、全員がそのファイルを読めなければいけませんが、実行できる必要はありません。

また、HTMLファイルへの書き込みは自分だけができれば十分です(むしろ、他人に書込み・改変をされると困ります)。そのため、パーミッション(権限・属性)は下記のように設定することになります。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否×××××

CGIプログラムの場合

また、CGIプログラムの場合には、全員がそのファイルを読めるとともに、そのプログラムを実行できる必要があります。

一方で、CGIプログラムへの書き込みは自分だけができれば十分です(むしろ、他人に書込み・改変をされると困ります)。そのため、パーミッション(権限・属性)は下記のように設定することになります。

誰が自分が自分が属するグループが全くの他人が
どのように扱えるか読み込める書き込める実行できる読み込める書き込める実行できる読み込める書き込める実行できる
可否××

CGIとパーミッション(概念編)

パーミッションとは、そのファイルの性質を示す情報です。

それぞれのファイルは

  1. 誰が
  2. どのように扱えるのか

を表す情報を持っています。この情報のことをパーミッション(日本語では権限又は属性等)と言います。

1番目の「誰が」という部分は、下記の3つに分けて指定します(なお、自分が属するグループというところについては、ホームページを作る上では、意味がわからなくても問題がありません)。

  1. 自分
  2. 自分が属するグループ
  3. 全くの他人

2番目の「どのように扱えるのか」という部分は、下記の3つがあります。

  1. 読み込める
  2. 書き込める
  3. (プログラムとして)実行できる

実際のパーミッションの設定は、この「誰が」、「どのように扱えるのか」を設定していきます。


ここで、重要なのは、インターネット経由でアクセスしてくるユーザは「全くの他人」として扱われます。

そのため、この「全くの他人」から、サーバに転送したファイルがうまく扱えるようにパーミッション(権限・属性)を設定しておかないと、せっかくサーバにファイルを転送してもうまく表示されない、という現象が生じてしまうのです。

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。