開發電子商城5(linux下安裝tvsftpd)
1:先檢查linux下是否安裝了vsftpd
2:安裝了的話就刪除原來的
yum remove vsftpd
3::再到yum庫中安裝
yum -y install vsftpd
4:在根目錄下創建一個文件夾。這是文件上傳保存的路徑
mkdir /ftpfile
或者
cd /
mkdir ftpfile
5:為上傳添加一個用戶 ,以i後上傳都用這個用戶
useradd ftpuser -d /ftpfile/ -s /sbin/nologin
這裏意思是添加一個叫做 ftpuser的用戶,這個用戶一登陸就進入 /ftpfile文件夾,這個用戶不允許shell等登錄方法,但是可以登錄ftp服務器
關於更多的useradd 命令可以參見
http://man.linuxde.net/useradd
和
http://blog.csdn.net/danson_yang/article/details/65629948
6:把新建的ftpfile文件夾 分配給 ftpuser
chown -R ftpuser.ftpuser /ftpfile/
更多的關於 chown 命令 參見 http://man.linuxde.net/chown
7:給ftpuser 設置密碼
passwd ftpuser
我設置為:(123456)
8:去ftpfile 下創建一份文件 以後測試用
vim /ftpfile/index.html
隨便往文件中寫點什麽 然後保存退出
9:去ftpfile的配置文件下修改一些配置
9.1 先找到配置文件在什麽地方
whereis vsftpd
9.2 修改配置文件
cd /etc/vsftpd
vim vsftpd.conf
9.3 首先找banner節點
/banner
可以把 #ftpd_banner=Welcome to blah FTP service.
的這一行註釋取消 再改成 Welcome to 【自己的站點的名字】FTP service. 這裏的意思 進入ftp服務器 的歡迎語句
9.4 在banner 節點下繼續添加如下2個配置
1)local_root=/ftpfile(當本地用戶登入時,將被更換到定義的目錄下,默認值為各用戶的家目錄)
2)anon_root=/ftpfile(使用匿名登入時,所登入的目錄)
9.5 繼續尋找 chroot_list 節點
打開 #chroot_list_enable=YES------》chroot_list_enable=YES
打開 chroot_list_file=/etc/vsftpd/chroot_list
9.6 再回到banner 節點下去添加配置
use_localtime=YES(默認是GMT時間,改成使用本機系統時間)
9.7 暫時退出插入模式(ctrl+o) 尋找anonymous 節點
把 anonymous_enable=YES 改成 anonymous_enable=NO(不允許匿名用戶登錄)
9.8 修改 或者 創建 /etc/vsftpd/chroot_list 文件
這個文件記錄的是可以遠程使用ftpserver的用戶的集合
把新建的ftpuser 寫入其中
9.9 :為了讓剛才的配置生效 重新啟動vsftpd
service vsftpd restart
9.10 確保 local_enable=YES(允許本地用戶登錄)
9.11 確保 write_enable=YES(本地用戶可以在自己家目錄中進行讀寫操作)
9.12 確保local_umask=022(本地用戶新增檔案時的umask值)
9.13 確保 dirmessage_enable=YES(如果啟動這個選項,那麽使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。默認值為開啟)
9.14 確保 xferlog_enable=YES(是否啟用上傳/下載日誌記錄。如果啟用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。)
9.15 確保 connect_from_port_20=YES(指定FTP使用20端口進行數據傳輸,默認值為YES)
9.16 確保 xferlog_std_format=YES(如果啟用,則日誌文件將會寫成xferlog的標準格式)
9,17 確保 chroot_list_enable=YES(設置是否啟用chroot_list_file配置項指定的用戶列表文件)
9.18 確保 chroot_local_user=NO(用於指定用戶列表文件中的用戶是否允許切換到上級目錄) 獲得 被註釋
9.19 確保 listen=YES 和 pam_service_name=vsftpd
9.20:確保 tcp_wrappers=YES
9.21 在 pam_service_name=vsftpd之下添加如下配置
pasv_min_port=61001(被動模式使用端口範圍最小值)
pasv_max_port=62000(被動模式使用端口範圍最大值)
pasv_enable=YES(pasv_enable=YES/NO(YES)
若設置為YES,則使用PASV工作模式;若設置為NO,則使用PORT模式。默認值為YES,即使用PASV工作模式。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
一、PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴服務器:“我打開了****端口,你過來連接我”。於是服務器從20端口向客戶端的****端口發送連接請求,建立一條數據鏈路來傳送數據。
二、PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,服務器在命令鏈路上用 PASV命令告訴客戶端:“我打開了****端口,你過來連接我”。於是客戶端向服務器的****端口發送連接請求,建立一條數據鏈路來傳送數據。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。
10:編輯防火墻 把vsftp的端口號 解放
#vsftpd
-A INPUT -p tcp --dport 61001:62000 -j ACCEPT
-A OUTPUT -p tcp --sport 61001:62000 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A OUTPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp --dport 21 -j ACCEPT
11:讓防火墻起作用 和 重啟vsftpd
service iptables restart
service vsftpd restart
12:修改 /etc/selinux/conf
把 SELINUX=enforcing 改成 SELINUX=disable
這好像是為了確保遠程用戶 可以在服務器中創建文件夾
馬上起作用: setenforce 0
13 再重新啟動 vsftpd
14 test
參照:http://www.gzidc.org/hostq/n685.html
開發電子商城5(linux下安裝tvsftpd)