一、程式與執行緒
二、vsftp伺服器
1.檔案傳輸協議(file transfer protocol,FTP)
基於該協議ftp客戶端和服務端實現檔案共享,上傳下載檔案
FTP基於TCP協議生成一個虛擬的連線,用於控制ftp連線資訊。同時再生成一個TCP連線用於FTP資料傳輸
2.ftp傳輸模式
3.FTP安裝配置
a.yum方式安裝
b.原始碼便宜安裝
1)yum install -y vsftpd*
2)vsftpd安裝後的配置檔案路徑,啟動vsftpd服務以及檢視程式是否啟動
rpm -ql | more
systemctl start vsftpd
ps -ef | grep vsftpd
3)Vsftpd預設配置檔案
[xj@www ~]$ sudo cat /etc/vsftpd/vsftpd.conf |grep -v “^#”|grep -v “^$” 去掉註釋和空行
anonymous_enable=YES 開啟匿名使用者訪問
local_enable=YES 啟用本地系統使用者訪問
write_enable=YES 本地系統使用者寫入許可權
local_umask=022 本地使用者建立檔案以及目錄預設許可權掩碼
dirmessage_enable=YES 列印目錄顯示資訊,用於使用者第一次訪問目錄時資訊提示
xferlog_enable=YES 啟用上傳/下載日誌記錄
connect_from_port_20=YES FTP:使用20埠號進行資料傳輸
xferlog_std_format=YES 日誌檔案將根據xferlog的保證格式寫入
listen=YES vsftp不以獨立的服務啟動,通過xinetd服務管理,建議改為YES
listen_ipv6=NO 啟用IPv6監聽
pam_service_name=vsftpd 登陸Ftp伺服器,依據/etc/pam.dvsftpd中的內容進行認證
userlist_enable=YES vsftp.user_list和ftpusers配置檔案裡使用者禁止訪問ftp
tcp_wrappers=YES 設定vsftpd和tcp wrapper結合進行主機訪問控制,vsftpd伺服器檢查/etc/hosts.allow和/etc/hosts/deny中的設定來決定請求連結的主機是否允許訪問ftp伺服器
4)FTP預設為主動模式,設定被動模式的方法如下:
pasv_enable=YES
pasv_main_port=6000
pasv_max_port=60100
5)匿名使用者的配置,訪問路徑為/var/ftp/pub,預設只有檢視許可權,如需上傳下載刪除,需加入以下程式碼:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
由於預設vsftp匿名使用者有anonymous和ftp,所以如需上傳刪除和修改許可權,需要修改/var/ftp/pub有寫入許可權,(以下任一命令即可)
chown -R ftp pub/
chown o+w pub/
問題區
1.vsftpd.service: control process exited, code=exit…s=2
由於centos7中vsftp的配置檔案預設將 listen_ipv6=YES 這一行沒有註釋掉,而我們目前的網路環境還不支援ipv6,
從而導致出現錯誤無法啟動,
所以解決方法是將 listen_ipv6=YES更改為:listen_ipv6=NO,或將這一行註釋掉
按上面的方法註釋掉 listen_ipv6=YES後,成功啟動vsftp
上傳檔案時:
2.553 Could not create file.
getsebool -a|grep ftp
setsebool allow_ftpd_full_access on
3.500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
chmod a-w /var/ftp