DefaultRoot?


名前

DefaultRoot? -- デフォルトの chroot ディレクトリを設定する

概要

DefaultRoot? [ directory [group-expression]]

デフォルト
    DefaultRoot? /
コンテキスト
    server config, <VirtualHost?>, <Global>
モジュール
    mod_auth
互換性
    0.99.0pl7 以降

説明

DefaultRoot? ディレクティブはログインしたユーザに割り当てられるデフォルトルートディレクトリを設定します.DefaultRoot? が "/" 以外のディレクトリに設定されている場合,クライアントが認証後,すぐに chroot 操作が実行されます.これは,ホストシステムのファイルスペースの一部から効果的にクライアントを切り離す為に使用します.指定するルートディレクトリは "/" から始めなければなりませんが,クライアントがそれぞれのホームディレクトリへ chroot で閉じ込める為の ~ を使う事も可能です.

指定された chroot ディレクトリが symlink の場合,chroot が設定される前にリンク元の解決が行われます.これは望まない副作用を持つ事になります.例えば,ユーザが書き込み権限を symlink に持っている場合,リンクを '/' を示すように修正する事が可能です.その為,chroot はサーバのルートディレクトリを示す事となり,不十分,あるいは全く制限の無い結果を生じてしまいます.

DefaultRoot? ディレクティブが,ログインしたユーザのホームディレクトリへのアクセスを拒否するディレクトリを指定した場合,ログイン後のユーザのカレントワーキングディレクトリが,通常のホームディレクトリの代わりに DefaultRoot? にセットされます.<Anonymous> ディレクティブは明示的に匿名ログインの為に使用するルートディレクトリを含むので,DefaultRoot? は <Anonymous> 設定ブロック内で使用する事は出来ません.特殊文字 "~" はログインのすぐ後に,認証したユーザのホームディレクトリに置換されます.デフォルトルートは,"~/anon-ftp" の様に,ホームディレクトリ内のサブディレクトリになるかもしれない点に注意して下さい.

オプションの group-expression 引数は,DefaultRoot? ディレクティブを unix group,groups や groups のサブネットに限定する為に使用する事が可能です.expression のフォーマットは: [!]group-name1[,[!]group-name2[,...]] です.expression は,論理的な boolean AND で解析され,expression の各メンバは,DefaultRoot? ディレクティブを適用する為に,論理的に真である必要があります.特殊文字 '!' はグループメンバシップを打ち消す為に使用します.

DefaultRoot? を使用する際は注意して下さい.ユーザが牢獄を "抜け出す" 潜在的な方法がある為,Chroot の "牢獄" は一般的なシステムセキュリティを実施する為の方法として使用してはいけません.

参照



DefaultRoot? 設定の例:

ServerName? "A test ProFTPD Server" ServerType? inetd User ftp Group ftp

#

# ProFTPd にログイン後すぐ,認証したユーザのディレクトリ内に chroot を実行します.

# これが作用すると,ユーザはより高いレベルのディレクトリを "見る" 事は出来ません.

# group-expression が含まれているので,'users' のメンバだが,'staff' メンバでは無いユーザだけが "~" に設定されたデフォルトルートディレクトリを持ちます.
DefaultRoot? ~ users,!staff
...

オリジナルドキュメント

http://www.proftpd.org/docs/directives/linked/config_ref_DefaultRoot.html


Hiroyuki Seino http://www.seichan.org/ http://www.seichan.org/blog/
Today:1 Yesterday:0 All:7203