
我需要建立一個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
以使其在重新啟動後保持不變。