環境與軟體
SUSE Linux Enterprise Server 11 (x86_64)
vsftpd-2.0.7-4.17.1.x86_64.rpm
修改vsftp設定檔參數(/etc/vsftpd.conf)
anonymous_enable=NO
local_enable=YES
chroot_list_enable=YES #將chroot_list 中列出來的使用者轉到其在user_config_dir下面定義的檔案中定義的目錄,NO:就是系統使用者的預設目錄
chroot_list_file=/etc/vsftpd/chroot_list #這是我們放置chroot使用者的檔案,後面我們要建立
增加vsftp設定檔參數(/etc/vsftpd.conf)
userlist_enable=YES
userlist_deny=NO
user_config_dir=/etc/vsftpd_user_conf #虛擬使用者的設定檔的主目錄,後面我們建立虛擬使用者時建立此目錄
guest_enable=YES
guest_username=virtual #虛擬使用者映射的系統使用者,後面我們要建立
重新啟動ftp server:/etc/init.d/vsftpd restart
修改pam驗證(/etc/pam.d/vsftpd,這個檔案名稱與(/etc/vsftpd.conf中的pam_service_name=vsftpd相對應)
注釋掉所有參數,在最前面加入下面兩行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #/vsftpd_login是要建立的驗證檔案,真正的檔案是vsftpd_login.db,這裡不能有尾碼
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #機器是64位,如果是32位的,用lib取代
建立系統使用者(guest_username=virtual),也可以使用已有的系統使用者
useradd -d /ftp_server/ virtual
建立虛擬使用者
vi /etc/vsftpd/logins.txt
以下是logins.txt的內容(奇數行為使用者名稱,偶數行為密碼)
download
download
admin
upanddownadnwrite
編譯虛擬使用者資訊
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db #對應/etc/pam.d/vsftpd中資訊
增加chroot_list資訊(就是虛擬使用者名稱,如果沒有此使用者,目錄會落在virtual建立時指定的目錄)
vi /etc/vsftpd/chroot_list
以下是chroot_list的內容
download
admin
增加vsftpd.user_list資訊(內容與chroot_list一樣,放在/etc/目錄下,不然定義的虛擬使用者無法登入 )
增加虛擬使用者自訂資訊,檔案名稱字與虛擬使用者名稱一致( user_config_dir=/etc/vsftpd_user_conf ,如果此目錄下沒有使用者的,就使用/etc/vsftpd.conf的預設配置)
download 檔案內容:
local_root=/ftp_server/download #指定這個使用者的家目錄位址,注意建立的目錄一定要放開讀寫權限,chmod o+rw 目錄名
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
admin檔案內容:
local_root=/ftp_server/admin #指定這個使用者的家目錄位址,注意建立的目錄一定要放開讀寫權限
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
摘自:孫傑關於技術的亂七八糟