原文參考:
https://help.aliyun.com/document_detail/92048.html
環境:
阿里雲ECS服務器:centos 7.6
防火牆狀態:關閉
安全組策略:放行21端口
安裝步驟:
(1)安裝vsftpd;
(2)配置本地用戶登錄;
(3)測試。
1. 安裝vsftpd
yum -y install vsftpd # vsftpd是服務端的服務,ftp是客戶端安裝連接服務端ftp的工具
systemctl start vsftpd.service
systemctl enable vsftpd.service
netstat -anpt |grep vsftpd # 檢測服務是否已經起來
2. 配置本地用戶登錄
(1)修改配置文件,橙色部分未修改內容,其他部分建議了解即可
anonymous_enable=NO # 不允許匿名用戶登錄
local_enable=YES # 允許本地用戶登錄
write_enable=YES # 允許寫入
local_umask=022 # 掩碼為022,表示755的權限
dirmessage_enable=YES # 如果啟動這個選項,那么使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。默認值為開啟。
xferlog_enable=YES #是否啟用上傳/下載日志記錄。如果啟用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。
connect_from_port_20=YES # 指定FTP使用20端口進行數據傳輸,默認值為YES。
xferlog_std_format=YES # 如果啟用,則日志文件將會寫成xferlog的標准格式,如同wu-ftpd 一般。默認值為關閉
listen=YES # 監聽IPv4 sockets
listen_ipv6=NO # 關閉ipv6
pam_service_name=vsftpd # 設置PAM使用的名稱,默認值為/etc/pam.d/vsftpd。
userlist_enable=YES # 是否啟用vsftpd.user_list文件
tcp_wrappers=YES # 如果啟用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求連接的主機,是否允許訪問該FTP服務器
use_localtime=YES # vsftpd將顯示當前時區中包含時間的目錄列表
port_enable=YES # 如果為NO,則表示禁止用PORT方法獲取數據連接
chroot_local_user=YES # 全部用戶被限制在主目錄
chroot_list_enable=YES # 啟用例外用戶名單
chroot_list_file=/etc/vsftpd/chroot_list # 指定例外用戶列表文件,列表中的用戶不被鎖定在主目錄
allow_writeable_chroot=YES # 允許寫入
local_root=/home/ftptest # 設置本地用戶登錄后所在的目錄
(2)創建登錄用戶ftptest【注意ftpuser不可以作為登錄用戶】
useradd ftptest
passwd ftptest
cd /home/ftptest/ # 注意我是直接放在/home下面的,所以ftptest 的屬主和屬組都是ftptest,如果在其它目錄這里需要修改屬主和屬組為ftptest
mdkir test
(3)連接測試
這里使用的工具是FileZIla(下載路徑:https://filezilla-project.org/download.php)
出現【列出目錄成功】表示已經成功連接,然后在 / 下也可以創建一個新的文件kjk表明可以寫入。
並且可以看到服務端創建的test,但是如果在test里面創建卻不行,顯示“550 Create directory operation failed.”,查了一下大家都說這個是selinux沒有disable,然而我已經關閉了;后來才發現test使用root用戶創建的,屬主和屬組不是ftptest,所以客戶端的用戶ftptest是沒有權限創建文件的