FTP ユーザーは chroot されるとファイルを見ることができません

FTP ユーザーは chroot されるとファイルを見ることができません

Debian Wheezy 64 ビットで、顧客がファイルをディレクトリに配置するための新しいユーザーを作成します。ユーザーを作成したら、で/bin/bashを に置き換えて、対話型ログインを削除します。次に、ユーザーを に追加して、セッションがホーム ディレクトリに chroot されるようにします。/bin/false/etc/passwd/etc/ftpchroot

しかし、ユーザーを に追加するとすぐに/etc/ftpchroot、ユーザーがログインしてもファイルが表示されなくなります。ユーザーは chroot されているため、上方向に移動できません。正しいディレクトリに保存されているファイルをアップロードすることはできますが、権限は 640、所有権は thatuser:thatusersgroup です。

これまでの私の考え:

  • /etc/ftpchroot明らかに何かを実行しており、実行すべきことを実行している。
  • そのマシンで作成されたすべてのユーザーにこの問題が発生しています (他の新しいユーザーで 2 回試しました)
  • これはディレクトリに依存しません。ホーム ディレクトリを変更してそこに chroot すると、同じ問題が発生します。

これまで何度かこの操作を行ったことがあるのに、このような状況に遭遇したことがなかったので、不思議に思います。残念ながら、問題の説明が問題だらけなので、答えを Google で検索するのは困難です。

編集 1: 今見ているもの。ftpchroot でログインすると、ログインが正常に完了してもメッセージは表示されません。ただし、ftpchroot なしでログインすると、/etc/motd認証が完了した後に表示されます。

編集 2: をインストールすることで、この問題を回避しましたinetutils-ftpd。PAM 認証が導入され、それを構成した後、前述の問題が発生することなく同じユーザーがログインし、問題なくファイルをアップロードして表示できるようになりました。

答え1

chroot を使用している場合、chroot 内で使用するバイナリはすべてその chroot 内に存在する必要があります。ftpchroot の場合、これは通常、システムlsの に依存するのではなく、ftpd が独自のバイナリ内に機能を持つ必要があることを意味します/bin/ls。そうでない場合、各ユーザーは独自の を持つ必要があります$HOME/bin/ls

したがって、解決策は、組み込みの ftp デーモンを使用することですls(または、--ls-included またはこの特定の ftp デーモンに適切なオプションを指定して再コンパイルします)。

関連情報