2008年4月6日

讓Ubuntu的pure-ftpd支援symbolic links

在Linux系統上,建立檔案系統的符號連結(symbolic links)是很自然的一件事,這麼做帶來系統管理很多的彈性與好處。
例如將某FTP資料夾連結到家目錄中:
ln -sf /home/ftp/share ~/share
或是將不同硬碟分割區連結到同一資料夾下:
ln -sf /media/sdb1 /home/ftp/disk2
ln -sf /media/sdc1 /home/ftp/disk3

但是,Ubuntu Linux中以預設參數執行pure-ftpd時,符號連結將會失效。以FileZilla為例,錯誤訊息如下:
狀態: 正在取得目錄列表中...
指令: CWD share
回應: 550 Can't change directory to share: No such file or directory
錯誤: 無法取得目錄列表!

在Mandriva Linux系統上,預設執行pure-ftpd並沒有這種問題,而Ubuntu必須再調整設定,這個問題很多人都遇到,但google搜尋結果大多是只有問題沒有解答,今天發現其實設定很簡單:
編輯 /etc/default/pure-ftpd-common
將 VIRTUALCHROOT=false 改為 VIRTUALCHROOT=true


重新啟動pure-ftpd(/etc/init.d/pure-ftpd restart),FTP Client必須斷線重連後才會生效。

怎麼找到設定? 在 /etc/init.d/pure-ftpd 中,可以看到 virtualchroot 參數的啟用與否,是參考$VIRTUALCHROOT的設定,而這個設定值則是保存在 /etc/default/pure-ftpd-common,而一般的設定則是在 /etc/pure-ftpd/conf 資料夾下。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!