コンテンツ配信用FTPサーバー

コンテンツ配信用FTPサーバー

さまざまなバージョンのソフトウェア パッケージを多数のユーザー アカウントに配布するために、FTP サーバーをセットアップする必要があります。

各ユーザーの FTP ホーム フォルダーにファイルをコピーしないようにするには、次のような構造を使用して、シンボリック リンクを含む「共有ファイル環境」を設定したいと思います。

/
...
+-- srv
    +-- ftp
        +-- data
            +-- V1
                +-- Latest            -> /srv/ftp/data/V1/V1.3
                +-- V1.1
                +-- V1.2
                +-- V1.3
            +-- V2
                +-- Latest            -> /srv/ftp/data/V2/V2.2
                +-- V2.1
                +-- V2.2
            +-- V3
                +-- Latest            -> /srv/ftp/data/V3/V3.1
                +-- V3.1
        +-- users
            +-- user1
                +-- V3                -> /srv/ftp/data/V3/Latest
            +-- user2
                +-- V2                -> /srv/ftp/data/V2/Latest
            +-- user3

各バージョンは、複数のファイルとサブフォルダーを含むフォルダーです。

私は vsftpd を搭載した Linux ボックス (CentOS 7) を使用していますが、ユーザーのホーム フォルダーへのアクセスを制限しようとすると問題が発生します。サーバーがユーザーのフォルダー外のリンクをたどることを許可しないのです。

たとえば、user1 に V3 フォルダとその内容(サブフォルダを含む)のみを表示させたいとします。

質問は、これが正しいアプローチかどうかです。正しい場合、どのように機能させるか、そうでない場合、このような場合に推奨されるアプローチは何ですか?

答え1

一般的な考慮事項として、コンテンツの配信に従来の FTP プロトコルの使用を停止します。


シンボリックリンクを使用する代わりに、「バインド」マウントファイル システムの一部を他の場所 (たとえば、ユーザーの個人用ディレクトリ階層) に複製します。バインド マウントは、chroot 制限戦略に干渉してはなりません。

次の構文は同等です。

mount --bind /srv/ftp/data/V3/Latest /srv/ftp/users/user1/V3
mount -o bind srv/ftp/data/V2/Latest /srv/ftp//users/user2/V2

/etc/fstab再起動後も永続的になるように、関連するエントリを作成します。

関連情報