1. 程式人生 > >Linux安裝vsftp及常見問題處理

Linux安裝vsftp及常見問題處理

Linux安裝vsftp

1. Linux檢視是否安裝vsftp

rpm -qa vsftp
如果安裝過,如下圖:
這裡寫圖片描述
2. 安裝vsftp
yum install -y vsftpd

3. 關閉匿名訪問
安裝成功後,使用service vsftpd restart啟動;
vsftpd安裝成功後,預設會開啟匿名訪問,安全起見,我們一般都會關閉匿名訪問:
vim /etc/vsftpd/vsftpd.conf
找到 anonymous_enable 並編輯
anonymous_enable=NO
儲存,並重啟vsftp服務:service vsftpd restart

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置檔案
/etc/vsftpd/ftpusers:用於指定哪些使用者不能訪問FTP 伺服器。 黑名單
/etc/vsftpd/user_list:指定允許使用vsftpd 的使用者列表檔案。 白名單
/etc/vsftpd/chroot_list:指定允許使用vsftpd 的使用者列表檔案。 控制名單下的目錄能不能離開ftp根目錄

4. 建立使用者並指定資料夾
建立使用者:test
使用者指定目錄: /home/files
使用者密碼:test

> useradd -d /home/files test
> passwd test

5. 限制使用者只能訪問指定資料夾
修改/etc/vsftpd/vsftpd.conf如下:
chroot_list_enable=YES //限制訪問自身目錄
chroot_list_file=/etc/vsftpd/chroot_list
編輯chroot_list檔案,將test使用者新增進去,每個使用者名稱一行

6. 啟動伺服器
service vsftpd restart

7. 測試
widnows 下 ctrl+R -> cmd :

ftp ip
輸入使用者名稱 ,密碼
dir

現在, 你也許已經連上ftp了, 也許ftp還連不上!!!
也許你連上了ftp了, 發現你既不能上傳檔案,也不能建立資料夾!!!!

下面,填坑:

1. 如果你還沒連上ftp,請在服務依次檢查:

// 檢查是否啟動vsfpt
ps -ef | grep vsftpd
//如果沒有啟動
service vsftpd start
//檢視vsftpd執行狀態
service vsftpd status
//檢視連結的埠是否監聽
lsof -i:21
//檢視防火牆是否關閉
service iptables status

2.如果已經連上,但是登入不上去:

//檢查使用者是否存在
cat /etc/passwd
//檢查配置,檢視是否禁用ftp登入,此時分多種情況。我用的是指定使用者,指定目錄的方式配置ftp
//如果在/etc/vsftpd/vsfptd.conf開啟chroot_list_enable=YES,需要在/etc/vsftpd/chroot_list中新增限制的使用者
//檢測防火牆是否開啟
service iptables status
下面是/etc/vsftpd/vsftpd.conf中的關鍵配置:

anonymous_enable=NO # 不允許匿名訪問,禁用匿名登入
chroot_local_user=YES # 啟用限定使用者在其主目錄下
use_localtime=YES # 使用本地時(自行新增)
chroot_list_enable=YES
local_enable=YES # 允許使用本地帳戶進行FTP使用者登入驗證
allow_writeable_chroot=YES # 如果啟用了限定使用者在其主目錄下需要新增這個配置,解決報錯 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
xferlog_enable=YES # 啟用上傳和下載的日誌功能,預設開啟。
local_umask=022 # 設定本地使用者預設檔案掩碼022 ;FTP上本地的檔案許可權,預設是077,不過vsftpd安裝後的配置檔案裡預設是022

3. 如果已經登入上, 卻無法上傳,建立資料夾:

常見錯誤:
553 could not create file //上傳檔案的時候
500 OOPS: vsftpd: refusing to run with writable root inside chroot () //建立資料夾的shihou
根據部落格:https://blog.csdn.net/bluishglc/article/details/42399439 中解釋,當我們限定了使用者不能跳出其主目錄之後,使用該使用者登入FTP時往往會遇到這個錯誤
從2.3.5之後,vsftpd增強了安全檢查,如果使用者被限定在了其主目錄下,則該使用者的主目錄不能再具有寫許可權了!如果檢查發現還有寫許可權,就會報該錯誤。
解決方案(針對給指定使用者限定訪問目錄):
首先, 我們需要保證/opt/vsftpd/vsftpd.conf中:
write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
allow_writeable_chroot=YES
加入設定目錄 /opt/ftp/upload/為指定使用者連結ftp後的根目錄,並且我們需要給登入使用者寫入/刪除許可權。首先 /opt/ftp/upload資料夾,不能有寫入許可權。只能給 upload下建立資料夾, 並給 chmod -R 777 資料夾許可權。
使用者再次登入後, 即有上傳許可權,也有在根資料夾下 建立資料夾的許可權。