Linux下打造ftp服務器
• 安裝vfftpd主服務器程序
Rpm –ivh vsftpd.xxx.rpm
• Vsftpd的三種用戶形式
1、匿名用戶形式:在默認安裝的情況下,系統只提供匿名用戶訪問
2、本地用戶形式:以/etc/passwd中的用戶名為認證方式
3、虛擬用戶形式:支持將用戶名和口令保存在數據庫文件或數據庫服務器中。相對於FTP的本地用戶形式來說,虛擬用戶只是FTP服務器的專有用戶,虛擬用戶只能訪問FTP服務器所提供的資源,這大大增強系統本身的安全性。相對於匿名用戶而言,虛擬用戶需要用戶名和密碼才能獲取FTP服務器中的文件,增加了對用戶和下載的可管理性。 對於需要提供下載服務,但又不希望所有人都可以匿名下載;既需要對下載用戶進行管理,又考慮到主機安全和管理方便的FTP站點來說,虛擬用戶是一種極好的解決方案。
Vsftpd配置文件
/etc/pam.d/vsftpd(用來加強vsftpd服務器用戶的認證)
/etc/vsftpd/vsftpd.conf (vsftpd主配置文件)
/etc/vsftpd/ftpusers (位於此文件內的用戶都不能訪問vsftpd服務)
/etc/vsftpd/user_list此文件是有可能被拒絕的用戶,也可能是允許的,取決於user_list=yes或no ,等於yes列表中的用戶禁止登錄.
/var/ftp/pub (下載目錄)
Vsftpd程序
/usr/sbin/vsftpd (vsftpd 程序)
/etc/rc.d/init.d/vsftpd(啟動腳本)
/etc/pam.d/vsftpd(pam認證)
#################匿名權限控制###############
anonymous_enable=YES #是否啟用匿名用戶
no_anon_password=YES #匿名用戶login時不詢問口令
下面這四個主要語句控制這文件和文件夾的上傳、下載、創建、刪除和重命名。
anon_upload_enable=(yes/no); #控制匿名用戶對文件(非目錄)上傳權限。
anon_world_readable_only=(yes/no); #控制匿名用戶對文件的下載權限
(注意:設置為yes不能下載,設置no能下載)
anon_mkdir_write_enable=(yes/no); #控制匿名用戶對文件夾的創建權限
anon_other_write_enable=(yes/no); #控制匿名用戶對文件和文件夾的刪除和重命名
注:匿名用戶下載是使用的是nobody這個用戶,所以相應的O這個位置要有R權限才能被下載。若想讓匿名用戶能上傳和刪除權限,必需設置
write_enable=YES #全局設置,是否容許寫入(無論是匿名用戶還是本地用戶,若要啟用上傳權限的話,就要開啟他)
anon_root=(none) #匿名用戶主目錄
anon_umask=(077) #匿名用戶上傳文件時有掩碼(若想讓匿名用戶上傳的文件能直接被匿名下載,就這設置這裡為073)
chown_uploads=YES #所有匿名上傳的文件的所屬用戶將會被更改成chown_username
chown_username=whoever #匿名上傳文件所屬用戶名
#################本地用戶權限控制###############
write_enable=YES #可以上傳(全局控制) 刪除,重命名
local_umask=022 #本地用戶上傳文件的umask
local_root #設置一個本地用戶登錄後進入到的目錄
download_enable #限制用戶的下載權限
chown_uploads=YES #所有匿名上傳的文件的所屬用戶將會被更改成chown_username
chown_username=whoever #匿名上傳文件所屬用戶名
user_config_dir=/etc/vsftpd/user_conf/ #後面跟存放配置文件的目錄,用來實現不同用戶不同權限。
vim /etc/vsftpd/user_conf/username #加入指定的目錄local_root=/data/www
chroot_list_enable=YES #如果啟動這項功能,則所有列在chroot_list_file之中的使用者不能更改根目錄 .默認值為yes。
chroot_list_file=/etc/vsftpd/chroot_list #指出被鎖定在自家目錄中的用戶的列表文件。
vim /etc/vsftpd/chroot_list #寫入限制的用戶名
可以通過以下三條配置文件來控制用戶切換目錄
通過與chroot_local_user=YES/NO搭配能實現以下幾種效果: