
さまざまなバージョンのソフトウェア パッケージを多数のユーザー アカウントに配布するために、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
再起動後も永続的になるように、関連するエントリを作成します。