パーミッションの設定
パーミッション(permissions)とは、何でしょうか?
CGIやSSIを利用する時、パーミッションという言葉を良く聞きます。
UNIXの場合、多くのユーザーが同じワークステーションを利用するため、ファイルやフォルダごとに読める人、書着込める人、実行できる人を設定できます。
パーミッションで設定できるアクセス方法は、
- 1) read 読むことができる権利 (r で現します)
2) write 書き込める権利 (w で現します)
3) execute 実行することができる権利
(x で現します)
またパーミッションで設定できるユーザレベルは、
- 1) Owner ファイルやフォルダの持ち主
- 2) group 持ち主の属するグループのユーザー全員
- 3) Everyone(Public) UNIXにアクセスするすべてのユーザー。
という権利に別れています。
パーミッション設定の確認
UNIX上で ls -lコマンドを実行すると、(MacのFetchでは<Remote><Viwe
File List> WinのCutFTPなら<View><File details>)ファイルの一覧が表示されます。
- -rwxr--r-- 1 okamoto 124 Jun 15 1997 index.html
上記の意味は左から順番に
- - ファイルである事を意味する。フォルダの場合は
d (ディレクトリ)
- rwx 最初の3文字はOwnerのパーミッション。この場合read,write,executeすべて許可。
- r-- 次の3文字はgroupのパーミッション。この場合readのみ許可。他は非許可です。
- r-- 次の3文字はEveryoneのパーミッション。この場合readのみ許可。他は非許可です。
- okamoto ここはファイルの持ち主です。通常IDが入ります。
- 124 ファイルサイズです。単位はByteです。
- Jun 15 1997 ファイル作成年月日です。
- index.html ファイル名です。フォルダの場合、フォルダ名です。
パーミッションを書き換える。
これらのパーミッションを書き換える時、chmod
というコマンドを利用します。
また、パーミッション設定の命令には数字を利用します。
- 例: > chmod 644 index.html
- (>はプロンプトで、%の場合や2文字の場合もあります)
この644がそれぞれの許可内容を表しています。6がOwner 4がgroup 次の4がEveryoneです。尚、数字の後に設定するファイル名を書きます。
また、数字は以下の方法で決まります。
- r = 4 , w = 2 , x = 1 としますから、
- rw-r--r--の場合は、644と設定します。
- rw- = 4+2=6 Owner
- r-- = 4 group
- r-- = 4 Everyone
パーミッション設定の例:SSIのカウンターの例で説明します。
先に、ダイアルアップ接続をし、接続後、Telnetを起動し、プロバイダーから教えられたサーバーにログインします。
cd xxxx(xxxxはディレクトリ名)で、目的のファイルのあるカレントディレクトリに移動します。そして以下の様にタイプします。
- > chmod 755 counter.pl
- > chmod 666 counter.dat
- > chmod 644 index.html
- > chmod 644 .htaccess
グループはプロバイダー利用の場合、赤の他人になるので、705,606,604のようにグループにはすべて非許可の方がよいでしょう。
- 1) chmod 755 counter.pl
- counter.plはまずOwnerがアクセスした時、読み込み(Read)、そして実行し(Execute)、そしてそのファイルを削除する権利(Write)を与えますから、rwx(4+2+1=7)
となります。
- グループユーザーと全員は、そのファイルを読み込み(Read)、実行(execute)しますが、削除等はできませんから、r-x(4+1=5)
となります。
- つまり、rwxr-xr-x となり、755 という事になります。
- 2) chmod 666 counter.dat
- counter.datは、データが格納されたファイルですから、Ownerも含め全員が読み込み、その後1足したデータを書き込みますが、実行する必要は無いので
rw-(4+2=6)となります。
- つまり rw-rw-rw- となり 666 という事になります。
- 3) chmod 644 index.html
- index.htmlは、Ownerは読み込み、そして削除したり希に書き込みますが、実行はしませんので、rw-(4+2=6)です。他のユーザーは読み込むだけですから
r--(4)となり、
- つまり、 rw-r--r-- となり 644 という事になります。
- 4)chmod 644 .htaccess
- .htaccessは設定を読み出すだけのファイルですから、全員に読み込みの権利、Ownerに削除書き換えの権利を与える為に、Index.htmlと同じになります。
FTPでパーミッション設定
FTPでのパーミッション設定をTelnetで許可せず、FTPのみというプロバイダーや、申請しないと設定できない場合がありますのでご注意ください。
MacのFetchなら、接続後、パーミッションを変更するファイルを選択し、<Remote><Set Permissinons>を開き、読み(Read)、書き(Write)、実行(Execute)などをチェックします。
- 644なら、「OwnerをRead,Write]をチェック
[GroupをRead] [EveryoneをRead]をチェックします。
- 755なら、「OwnerをRead,Write,Execute][GroupをRead,Execute」「EveryoneをRead,Execute]
- 666なら、「OwnerをRead,Write]をチェック
[GroupをRead,Write] [EveryoneをRead,Write]をチェックします。
- そしてOKをクリックすればパーミッション設定は終了です。
Windowsユーザーは、CuteFTPを利用します。
まず、接続します。で、右側のウインドウを<Viwe><Long
listing>で詳細表示し、パーミッション設定したいファイルをワンクリックで反転させ、<Command><Change file attributes>で開いたウインドウです。
- 644なら、「OwnerをRead,Write]をチェック
[GroupをRead] [EveryoneをRead]をチェックします。
- 755なら、「OwnerをRead,Write,Execute][GroupをRead,Execute」「EveryoneをRead,Execute]
- 666なら、「OwnerをRead,Write]をチェック
[GroupをRead,Write] [EveryoneをRead,Write]をチェックします。
- そしてOKをクリックすればパーミッション設定は終了です。
他の書き方
- ファイルの持ち主 を userという意味で、u
- グループを groupという意味で、g
- 第三者を Otherという意味で、o
- 全員を all という意味で a を使い、
- > chmod u=rw index.html
- ファイルの持ち主に読み書きを許可という事です。
- > chmod a=rw counter.dat
- > chmod 666 counter.dat と同じ意味です。
- > chmod ug=rw xxxx.xxx
- 持ち主とグループに読み書き許可。
- > chmod go= xxxx.xxx
- 右辺未記入であれば、左辺はすべて不許可。
- > chmod g+r xxxx.xxx
- +を使うと、グループに書き込み許可をプラス。
- > chmod g-r xxxx.xxx
- -を使うと、グループの書き込み許可を取り消す。
- のような設定方法もあります。(HomePage作成には、あまり利用しませんが)
-
Copyright:ZAP
1997.4