chroot sftp は、Linux の OpenSSH パッケージによって提供される機能です。ユーザーが sftp を使用しているときに、不要な場所へのアップロードなど、システムの不要な変更を避けるために、chroot 環境をセットアップできます。特定のユーザーまたはすべてのユーザーに対して sftp を chroot すると、ユーザーはホーム ディレクトリとその下のサブディレクトリにのみアクセスできます。
方法 1 (openssh ネイティブによる)
openssh-5.x バージョンから、sftp は特定のディレクトリに chroot できました。次の手順で、sftp 用のネイティブの openssh chroot を実装できます。
1. jail ディレクトリを作成します。
# mkdir /chroot/home
2. 次のように /home にマウントします。
# mount -o bind /home /chroot/home
3. /etc/ssh/sshd_config を編集します 次のように:
# vi /etc/ssh/sshd_config ChrootDirectory /chroot Subsystem sftp internal-sftp
4. sshd サービスを再起動します:
# service sshd restart注意 :jail ディレクトリが root 所有であり、他のユーザーまたはグループによって書き込み可能ではないことを確認してください。
方法 2 (pam_chroot を使用)
1. chroot を /etc/pam.d/sshd に追加します ファイル:
# vi /etc/pam.d/sshd session required pam_chroot.so
2. /etc/security/chroot.conf を変更します chroot ディレクトリを含めます。
# vi /etc/security/chroot.conf user /chroot_dir
3. /etc/ssh/ssh_config を変更します
# vi /etc/ssh/ssh_config Subsystem sftp /usr/libexec/openssh/sftp-server
4. sshd を再起動して新しい構成を適用します。
# service sshd restart