EDB/CMSディレクトリ,ファイル名の制約と特別な名前


ディレクトリ,ファイルの名前についての制約

◎ EDB/CMSにおけるディレクトリ(フォルダ),ファイルの名前には半角ASCII文字を利用することを推奨する.
すなわち,名前に利用できる文字は, 『A』〜『Z』, 『a』〜『z』, 『0』〜『9』, 『-』, 『.』, 『@』 とする.
上記以外の文字を利用した場合には,EDB/CMS上で行われるディレクトリ,ファイルの操作は保証されない.
EDB/CMSで利用しているWWWサーバ自体は,和文のファイル名を利用することができる. 文字コードはUnicodeTM(エンコード方式はUTF-8)である.
Unicodeは世界中の文字種を統合するために設計されたものであるが,残念なことに機種依存文字という概念を許容している. すなわち,オペレーティングシステムによって表示できるかどうかが左右される文字が存在する. 特に日本人が好んで使う傾向にある一文字の丸数字やローマ数字,複合文字などは危険である.
WWWの特徴の一つとしてリンクによるコンテンツの有機的に結合があげられるが,和文を含むリンク指定がいつもうまく動作することの保障はない.

◎ 『.』, 『@』で始まるディレクトリ名,ファイル名は予約される.
ビリオド『.』から始まる名前はサーバのアクセス制限設定やコンテンツの目次生成のために利用される.
『@』から始まる名前はコンテンツのアクセスの範囲やインデックス作成のために利用する.

◎ 『0』〜『9』で始まるディレクトリ名,ファイル名は特別な意味で解釈される.
『0』〜『9』のいずれかから始まる名前はEDBの登録情報と関連付けを行うため利用する.

特別なディレクトリ名

読み出し制限

書き込み制限

通常,ある情報に対応するディレクトリはその情報に関して権限を持っているユーザのみが書き込みが可能である.
EDBのテーブル 権限をもつユーザの抽出 構成員の抽出
【組織】 その組織情報に対して権限をもつユーザ. [構成員]に登録されている個人を抽出(再帰的に抽出)
【教育プログラム】 教育プログラムの所有者および所属する組織の権限をもつユーザ. 教育プログラムが所属する組織の[構成員]に登録されている個人を抽出.
【個人】 その個人のみ.
【擬人】 その擬人に対して権限をもつユーザのみ.ただし,所有者は除く.
その他 EDBの情報に対して権限をもつユーザ.
個人,擬人,その他の情報に対応するディレクトリに『@Writable』という名前を作成しても無意味である.

アクセス制限設定

EDB/CMSにアクセスする方法としては,

○ HTTPプロトコルによるアクセス.
WWWブラウザを用いて『http://〜』 にアクセスする方法.
→ ユーザ認証を行わず,アクセス制限は静的に設定されている.
→ 『@passwd』が存在するディレクトリに関しては,『@passwd』によるユーザ認証を行う.(July 15, 2006)
○ HTTPSプロトコルによるアクセス.
WWWブラウザを用いて『https://〜』 にアクセスする方法.
WebDAV用のクライアントアプリケーションを用いる方法.
→ ユーザ認証が必ず必要であり,アクセス制限は静的+各ディレクトリにおけるアクセス制限設定によってアクセスの可否が判断される.
が用意されている.ディレクトリ名に対するアクセス制限は次の表のように設定される.

Location 認証なし(http://〜) 認証あり(https://〜)
インターネットユーザ EDBのユーザ(教職員)
Read Write Read Write
〜/@University/〜 学内 × 許可されている場合のみ可
〜/@User/〜 × × 許可されている場合のみ可
〜/@Member/〜 × × 許可されている場合のみ可 許可されている場合のみ可
〜/@Writable/〜 × 許可されている場合のみ可
静的に設定 定期的もしくはユーザが明示的にを押して再設定を行った後有効.
ただし,ディレクトリが入れ子になっている場合には,上位ディレクトリのアクセス制限が下位ディレクトリのアクセス制限に影響する.

アクセスリスト生成に関する基本事項

アクセスリストの生成には基本的にはEDBの登録情報の権限継承関係を利用しているが,若干変更されている.
あるディレクトリの階層構造に関して,

名前が『0』から『9』ではじまるディレクトリ,ファイル名

名前が『0』から『9』ではじまるディレクトリ,ファイル名で, の形式に当てはまるものは,正整数の部分(すなわち,最初から『.』の直前まで)をEDBの登録情報のEIDに対応するものと解釈する.

EDBの登録情報に関連するディレクトリ,ファイル名

12345.pdf
12345/example.pdf

特別なファイル名

ファイル名 基本認証なし(http://〜) 認証あり(https://〜) 認証あり(DAV) ユーザによる
変更の可否
インターネットユーザ EDBのユーザ(教職員)
.htsacc アクセス制限設定ファイル(自動作成) ×
.sacc アクセス制限設定ファイル(自動作成)(※2) ×
.acc アクセス制限設定ファイル(自動作成)(※2) ×
@passwd ユーザが設定するパスワードファイル(※5)
@reader 読み権限をもつユーザの追加ファイル(※6)
@writer 書き権限をもつユーザの追加ファイル(※6)
.head.html ディレクトリインデックスの最初の部分(自動作成) ×
.foot.html ディレクトリインデックスの最後の部分(自動作成) ×
@davindex.html DAV用のインデックス(自動作成) ×
index.html ユーザが独自に作成するインデックス(※1)
sindex.html ユーザが独自に作成するインデックス(※1)
@replace.url リダイレクト先のURL(※3)
@here.url  (※4) ×
@config  (※7) 各種設定
(※1)…このファイルが存在する場合には,デフォルトのディレクトリインデックスは表示されない.
(※2)…このファイルはユーザが消去できるように設定されているが,このファイルを単独で消去するとアクセス制限を誤作動させる危険があることに注意してください.
(※3)…".foot.html"作成時に参照され,デフォルトのインデックスアクセス時にリダイレクトがかかる."index.html"を作成している場合には無効. ファイルの内容は

URL=url

という形式.例:

URL=http://cms.db.tokushima-u.ac.jp/DAV/lecture/1234567/
URL=http://my.server/my/folder/lecture/1234567/
URL=/DAV/lecture/1234567/
URL=@University/

フルに書くのが好ましい.(多くのWWWブラウザでファイル自体をオープンすることが可能)
url 中に非Latin文字(ex. 和文)が含まれる場合には,文字コードの違いによりWWWブラウザが正しく目的の頁を開くことができないかも知れません.和文などが含まれる場合には,必ず複数の種類のブラウザで動作を確認してください.
(※4)…現在のディレクトリを指し示す.urlファイル,"@replace.url"に名前を変更して他のディレクトリにおいて利用する.
(※5)… EDBユーザ以外のアクセスにBasic認証を適用したい場合には,対象となるディレクトリに『@passwd』ファイルを設置する方法を提供している (July 15, 2006). ただし,読み出しのみが可能である. また, この方法ではアカウント,パスワードの管理はそのコンテンツエリアを管理している方の責任において行って頂くことになる.
  • 『@passwd』は通常httpサーバで用いられる「.htpasswd」と同じフォーマットであり,現在のEDB/CMSのバージョンでは
    • plain text (平文): (強く使うべきではない)
    • crypto(3) (DES暗号化): (あまり使うべきではない)
    • Apache modified MD5: (SHAが利用でない場合に使う)
    • SHA: (推奨)
    が利用できる. 作成例は,Apacheの「htpasswd」コマンドが利用できる環境下で
    	%  htpasswd  -b  -c  -s  @passwd  username  password
    
    と実行すればよい.
  • 『@passwd』ファイルを実際にアクセス制限に反映させるには,ボタンをクリックして能動的にディレクトリの再設定を行う必要がある.(または,定期的な再設定作業を待つ) アクセス制限の設定は,そのディレクトリ中の
    • .acc … 情報のサブディレクトリにおけるアクセスコントロールファイル (削除可能)
    にて行われる.(ただし,ディレクトリ @User, @Member 以下では作成されない.)
  • 『@passwd』の内容はHTTPによるアクセスからは隠蔽されるが,認証されたHTTP+SSLによるアクセスに対しては隠蔽されない.
(※6)… EDBから自動的に生成されるReaders, Writersのリストに追加したいユーザのリストを設定するファイル.(January 24, 2007). 『@reader』に記述されたユーザはReadersリストに追加され,『@writer』に記述されたユーザはReadersリストとWritersリストの両方に追加される.
  • 各々のファイルの内容は,
    	S12345
    	S12346
    
    のように必要なだけユーザ名を一行ずつ記述する.
  • これらのファイルを実際にアクセス制限に反映させるには,ボタンをクリックして能動的にディレクトリの再設定を行う必要がある.(または,定期的な再設定作業を待つ)
  • 『@reader』『@writer』によるユーザリストの追加は,下位のディレクトリにも影響する. この影響を抑制するためには,内容が空の『@reader』『@writer』を下位ディレクトリに配置する.(階層ディレクトリ構造において,『@reader』『@writer』の内容は追加ではなくoverwriteである.)
  • 上位ディレクトリにおいて読み権限のないユーザを『@reader』『@writer』中に記述しても,ユーザリスト Readers, Writers には追加されない.
(※7)…設定時に参照される.(現時点では実験的試行)

noindex	ディレクトリ名

と記述しておくと,そのディレクトリ以下についてはインデックスを作成しない. ただし,インデックスが作成されないので,@replace.urlによるリダイレクトの機能は利用できなくなる.

EDB working group <edb-admin@web.db.tokushima-u.ac.jp> $Id: naming.html,v 1.13 2007/01/24 10:09:40 alex Exp alex $