FTP ~パーミッションについて
サーバー上のファイルやフォルダに対しての
ユーザーごとのアクセス権をパーミッションといいます。
個人用のPCと違って、サーバーのような複数のユーザーが
利用するコンピューターでは権限を設定しておかなければ、
そのコンピューターの利用権限があれば誰でも読み書き可能
という状態では良くないわけですね。
読み込み
書き込み
実行
と3種類の権限を、
オーナー(ファイルやディレクトリの所有者)
グループ(コンピューターを利用出来るユーザー全て)
その他
それぞれに対して割り振ります。
この権限を数字で表すこともよくあって、
4=読み込み可
2=書き込み可
1=実行・ディレクトリ一覧可
という数字で表します。
FFFTPでは「属性」という名前で設定が可能になっていて、
一般的なHTMLや画像などのファイルやフォルダをアップロードした際には、
自動的に最適なパーミッション(644)に設定されますが、
CGIやPHPなどのファイルやフォルダが生成されたり、
実行権限が必要な際には手動で設定する必要があります。
設定したいファイル(フォルダ)を右クリックして「属性」を開けば
このようなウインドウが表示されます。
FFFTPでは前述の
読み込み→呼び出し
書き込み→書込
実行→実行
という名称になっています。
例えばperlで記述されたCGIを設置する場合、
本体のCGIファイルは実行出来なければ動作しないので、
オーナーには全ての権限を
呼出(4)+書込(2)+実行(1)=(7)
グループには書込権限は必要ない(というより与えない)ので
呼出(4)+実行(1)=(5)
その他にも書込権限は必要ないので
呼出(4)+実行(1)=(5)
という権限を与えます。
これで、CGI配布サイトなどがパーミッションは755で設定して下さい
という内容になるわけです。
またファイルへのログや投稿内容の保存に関しては実行する必要はなく、
所有権に注意しなければ外部からの改変が可能になってしまうので、
オーナーには
呼出(4)+書込(2)=(6)
グループには読込も書込の権限も必要ないので
(0)
その他にも読込・書込権限がないとウェブサーバーが利用出来ないので
呼出(4)+書込(2)=(6)
という606というパーミッションになります。
たまにCGI等の配布サイトで666に設定して下さいという記載もありますが、
グループからの読込・書込を許可してしまうと
同じサーバーを利用している別ユーザーからも読込・書込も可能になるので、
絶対にやめるようにして下さい。
ディレクトリ(フォルダー)の操作を行う場合は、
ファイルと違って実行権にディレクトリへの権限が含まれるため、
オーナーには全ての権限を
呼出(4)+書込(2)+実行(1)=(7)
グループには読込も書込の権限も必要ないので
(0)
その他にも全ての権限が必要なので
呼出(4)+書込(2)+実行(1)=(7)
という707というのが正しいパーミッションとなります。
こちらも777とはしないように注意して下さい。
またCGIをよくアップロードする方だと、
このパーミッションの設定を毎回行うのが面倒な場合もあるので、
FFFTPの「オプション」から「環境設定」を開いて下さい。
「転送3」という項目で拡張子毎の属性を設定しておけるので、
「追加(A)」をクリックして
「ファイル名(F)」にcgi、「属性」に「755」を設定して下さい。
これで次回アップロード時からcgiという拡張子のファイルは、
自動的に755というパーミッションでアップロードが行われます。