VSFTPD の設定では、ユーザーはホーム ディレクトリに chroot されます。これは標準的な設定です。ただし、この設定では、すべてのホーム ディレクトリが書き込み不可である必要があります (セキュリティの問題を回避するため)。問題ありません。ファイルをアップロードしたい場合は、書き込み可能なフォルダーにアップロードできます。内で彼らの chroot。
しかし、アップロードを行うたびにそのフォルダに移動する必要があります。VSFTPD構成ファイルのlocal_rootオプションを使用して、デフォルトのログイン場所をその書き込み可能なフォルダに移動すると、それchroot になり、振り出しに戻ってしまいます。書き込み不可になります。
私の質問は、chroot ディレクトリ自体を書き込み可能にせずに、VSFTPD がユーザーを配置するデフォルトの場所を、chroot jail 内の書き込み可能なディレクトリに移動するにはどうすればよいかということです。
答え1
vsftpd でこれを行う方法は 1 つしかなく、パスはシステムの passwd ファイルで設定する必要があります。パスは vsftpd.conf ファイルでは設定できません。
/etc/vsftpd.conf ファイルで、次の 2 つのオプションを設定します。
chroot_local_user=YES
passwd_chroot_enable=YES
また、chroot jail がルート化されている場所を示すために、ユーザーの UNIX ホーム ディレクトリを変更する必要があります。chroot jail ルートは、/./
ホーム ディレクトリ パスの の左側のパスに配置されます。つまり、/ftphome/./home/user/
chroot jail を に設定し/ftphome/
、jail 内のユーザー ディレクトリは になりますhome/user
。これは、次のコマンドを実行して行うことができます。
sudo usermod -d /ftphome/./home/user/ user
当然のことながら、chroot ディレクトリとその中のユーザー ディレクトリは、通常の chroot 準備に従って設定する必要があります。