
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 デーモンに適切なオプションを指定して再コンパイルします)。