パソコン実習室
FTPサーバ (vsftpd-2.0) の設定
≪ previous next ≫

U.2.3.ローカル ユーザ関連ディレクティブ

 以下のディレクティブを使用するには、local_enable が YES に設定されている必要がある。
また、ここで設定するディレクティブは、匿名ユーザ (anonymous, ftp) は対象外である。



  • default : 設定なし [ YES ]
  • YES
    SITE CHMOD (パーミッション変更) コマンドを許可する。
    [ デフォルト (ディレクティブなし) 値 : YES ]
  • NO
    SITE CHMOD コマンドを許可しない。


  • default : 設定なし [ ホーム ディレクトリ ]
  • ログイン ユーザの初期ディレクトリを指定する。
    [ デフォルト (ディレクティブなし) 値 : ユーザのホーム ディレクトリ ( /home/user name ) ]
  • directory 指定時の注意点。
    • directory が絶対パスでない (一般的な指定) 場合は、ユーザのホーム ディレクトリからの相対パスと解釈される。
    • 一般にホーム ディレクトリ内の <public_html> 等が指定されることが多い。
    • cgi 用ディレクトリ <cgi-bin> が <public_html> の外部にある場合は、 ユーザの <cgi-bin> へのアクセスを阻害することがないよう chroot 制御 (chroot_local_user, chroot_list_enable, chroot_list_file) との関連に注意を要する。


  • default : 設定なし [ NO ]
    YES を推奨する。
  • ユーザの chroot(*1) を制御する。
  • YES
    ユーザのログイン ディレクトリ(*2) を、そのユーザのルート ディレクトリに変更 (chroot) する。  ユーザはログイン ディレクトリの外側にアクセスできなくなる。
    ただし chroot_list_enable が YES の場合、リストアップされたユーザ(*3) はその対象から除外される。
  • NO
    ユーザはログイン ディレクトリの上部にも自由にアクセス可能。 (デフォルト)
    ただし chroot_list_enable が YES の場合、リストアップされたユーザ(*3) のルート ディレクトリはログイン ディレクトリに変更 (chroot) される。
  • セキュリティを考慮すると、本ディレクティブを追加し YES と設定することが望ましい。
(*1) chroot
 ログインしたユーザのルート ディレクトリを、ログイン ディレクトリに変更する。  ユーザから見ればこのディレクトリがルートであり、"/" で始まる絶対パス名の起点となる。

(*2) ログイン ディレクトリ
 ログイン ユーザの初期ディレクトリ。 local_root で指定する。
local_root が未設定の場合は、ユーザのホーム ディレクトリがログイン ディレクトリとなる。

(*3) リストアップされたユーザ
 chroot_list_file で指定したファイルに記載されたユーザ名。



  • default : コメントアウト [ NO ]
    YES を設定し、chroot_list_file で指定するファイルを作成することを推奨する。
  • ユーザ名 (chroot 制御対象) を記載したファイルの、有効/無効 を設定する。
    ファイル名は別途 chroot_list_file ディレクティブで指定する。
  • YES
    指定ファイルに記載されたユーザ を chroot_local_user の設定に基づいて制御する。
    記載ユーザは次のように制御される。
    chroot_local_user 設定値chrootログイン ディレクトリ外へのアクセス
    YES除外可能
    NO実施拒否

    ※ YES の場合、chroot_list_file で指定するファイルの作成が必須となる。
       このファイルが存在しないと、ログイン時に "could not open chroot() list file" が表示されて、すべての
       ユーザがログインできない。 対象ユーザがなくても、空ファイルが必要である。
  • NO またはコメントアウト
    ファイルは参照されず、すべてのユーザの chroot 制御は chroot_local_user の設定値に基づく。
    ※ リストアップされないユーザの chroot 制御は本項の設定には無関係で、chroot_local_user の設定値で
       一意に決まる。


  • default : コメントアウト [ /etc/vsftpd.chroot_list ]
  • chroot_list_enable が YES の場合に参照するファイルを指定する。
  • デフォルト (無設定) の状態でも暗黙裡に /etc/vsftpd.chroot_list が指定されている。
  • 運用管理上、コメント記号を外して明示しておく方が望ましい。
  • デフォルト指定のファイルはインストール時に作成されない。
    ※ chroot_list_enable を YES とした場合は、該当ファイルの作成は必須である。


  • default : 022
  • 新規ファイルに適用するパーミッションの umask 値(*4) を設定する。
  • ユーザが新規作成 (アップロード) するファイルのパーミッションは、システム規定値(*5) に umask 値でマスク処理(*6) した値が適用される。
  • 各数値 (桁) はビット展開され、パーミッションの rwx に対応する。
  • 先頭が "0" の数値は 8 進数と解釈され、各桁は owner, group, other に該当する。
    ※ 先頭に "0" 以外の数値を設定すると、10進数と解釈される。
    ※ owner に "0" 以外を指定するには、先頭に "0" を付加して4桁の数値にする。
       下3桁が owner, group, other として処理される。
(*4) umask 値
新規ファイル等に適用するパーミッション (システム既定値) に対してマスクとして作用する。

(*5) システム規定値
新規ファイル、新規ディレクトリに適用するパーミッションの初期値。 下表参照。

(*6) マスク処理
 システム規定値、umask 値を共にビット展開して 3桁の 2進数に展開し、 マスク値が "0" のビット位置はシステム規定値をそのまま読み、"1" のビット位置は強制的に (マスクして) "0" に置換する。

umask値を 022 とした場合に適用されるパーミッションは次の通り。 ( )内は 2進数。
ファイルのパーミッションディレクトリのパーミッション
システム規定値666 (110 110 110)777 (111 111 111)
umask 値022 (000 010 010)022 (000 010 010)
マスク処理後の値644 (110 100 100)755 (111 101 101)

※ システム規定値を pf, マスク値を pm とすると、マスク処理 (適用) 後のパーミッション値 px は
   次の式で求めることができる。

px = pf   &   ~pm

[   & : ビットごとの AND 演算子。       ~ : ビット反転演算子。  ]




≪ previous [[ FTPサーバ - vsftpd の設定 ]] next ≫