刑務所を使用せずにProFTPdを使用できますかchroot
(したがって、FTPルートディレクトリの外部へのアクセスがブロックされます)。私のFTPソースに、私のFTPサービスのルートディレクトリの外部の場所へのシンボリックリンクを含める必要があります。
ProFTPdで読んだすべてのドキュメントとディスカッションでは、chroot機能の使用方法について説明します(さらにはStackExchange 私)、しかしこれをバイパスし、他の方法を使って私のFTPルートを提供できるかどうか疑問に思います。シンボリックリンクはシンボリックリンクのままである必要があるため、chrootの制限(問題に対する賢い「解決策」)を回避する方法でディレクトリをマウントすることは機能しません。
答え1
問題は、FTPがインターネットの先史時代の初期に定義されていたことです。いいえセキュリティ条項(通常のテキストパスワード、...)。これは、FTPサーバーが通常匿名ログインにのみ使用される理由であり、インターネットに公開されており、豊富なコマンドセットを持っているためです(そして非常に驚くべき機能がたくさんあり、コンピュータ間でファイルを転送するために作成されました)。本物奇妙なアーキテクチャ、異なる文字表現、奇妙なオペレーティングシステム)。理性はこれらの獣を降りなければならないと指示します。
scp(1) のようなものを使うオプションはありますか?代わりにWebサーバーを使用しますか(より効率的でなければなりません)?
シンボリックリンクはなぜシンボリックリンクであるべきですか?
答え2
ProFTPDはモジュール vroot基準寸法この目的のために。このモジュールをProFTPDに直接コンパイルするapt-get install proftpd-mod-vroot
か、リポジトリにある場合はインストールできます(一部のDebianリポジトリの場合)。
モジュール vrootユーザーが「仮想chroot」を設定できるようにするデフォルトのルートディレクトリディレクティブ(セッションの初期/ルートディレクトリ; ProFTPDはディレクティブなしでそのディレクトリにルートを指定します。モジュール vroot)、しかしシンボリックリンクが外部を指すことを可能にします。デフォルトのルートディレクトリ道。 mod_vrootもサポートしますVRootサーバーのルートコマンドを実行すると、ProFTPD はこれに対して真の chroot を実行します。つまり、シンボリックリンクは外部を指すことができます。デフォルトのルートディレクトリただし、範囲内の場所をターゲットにする必要があります。VRootサーバーのルート道。
構成例:
<IfModule mod_vroot.c>
VRootEngine on
VRootServerRoot /usr/share/ # Symlinks can only point to location within /usr/share/
VRootOptions allowSymlinks
DefaultRoot /usr/share/ftproot/
</IfModule>