在使用VSFTP管理FTP SERVER服務器時, 為了方便用戶的上傳下載指定的資料, 需要對用戶的目錄進行指定, 也就是說只能讓用戶訪問指定的目錄, 不能訪問之外的其他目錄. 這個需要在VSFTPD配置文件進行相應的設置, 一般來說, 默認的是每個用戶只能訪問/home/username目錄下的文件, 但是作為服務器來講, 把網站文件存到各自的目錄下有點不現實, 比如說TOM和JACK兩個用戶同時具有訪問某一個指定的目錄,比如說網站的根目錄/var/www/, 這樣的話, VSFTPD的默認的配置文件就無法實現這樣的功能了, 而這個功能又是在網站的文件管理過程中又非常實用. 下面我們就着手進行這方面的配置, 為方便突出重點, 我們只討論有關這個需求的幾個參數, 其他的參數選項可參考這篇文章;
要達到此項需求, 主要用到chroot_local_user,chroot_list_enable, local_root, vsftp.chroot.list,這幾個參數, 其中在UBUNTU系統中, 參數local_root需要手動在配置文件(vsftp.conf)中添加,vsftpd.chroot_list需要在/etc添加新文件(mkdir /etc/vsftpd.chroot_list)(針對ubuntu版本).
基於chroot_local_user,chroot_list_enable這兩項決定着它的整個功能的實現, 其參數值是YES,NO, 根據排列組合原理可以得出4種不同的設置方法, 它們共同決定着vsftpd.chroot_list中定義的用戶的訪問權限及是否漂移(也就是能否訪問指定目錄外的其他文件), 這里又分兩種情況, 第一種情況是在vsftpd.chroot_list定義的用戶(list用戶), 第二種是vsftpd.chroot_list(簡稱非list)
下面是四種情況這兩用戶組的訪問情況(再次說明, 默認其他的vsftpd.conf參數已經設置完成的情況)
第一種情況:
chroot_local_user=YES
chroot_list_enable=YES
效果: list用戶組漂移, 非list用戶組固定
第二種情況:
chroot_local_user=YES
chroot_list_enable=NO
效果: list用戶組固定, 非list用戶組固定
第三種情況:
chroot_local_user=NO
chroot_list_enable=NO
效果: list用戶組漂移, 非list用戶組漂移
第四種情況:
chroot_local_user=NO
chroot_list_enable=YES
效果: list用戶組固定, 非list用戶組漂移
根據以上四種情況來選擇需要的模式, 對於大多數朋友來說, 可能第四種的用法比較廣泛一些, 就我的用戶需求來看, 我選擇第二種情況, 所有的用戶訪問權限都固定在同一個目錄下, 這個目錄是由local_root屬性值來確定的. 這個值的定義要用絕對路徑來定義, 如下例:
local_root=/var/www
就我的情況來說, 所有的用戶都能訪問到這個目錄, 但是還有一點需要說明的是, 雖然這樣, 由於vsftpd對於安全性的要求比較高一些, 所以你所設置這個主目錄不能有寫權限, 否則會出現如下的錯誤提示:
500 OOPS: vsftpd: refusing to run with writable root inside chroot
它出現的原因及解決方法請參考:http://www.cnblogs.com/wwufengg/archive/2012/10/29/500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot.html
轉載請注明本文出處: http://www.cnblogs.com/wwufengg/archive/2012/10/30/vsftpd-config-user.html