CentOS8搭建FTP服務器

1 概述

文章主要講了CentOS8如何利用vsftpd搭建一個FTP服務器,而後進行簡單的匿名上傳/下載與用戶上傳/下載測試,還有使用了wget測試.linux

2 安裝vsftpd

yum install -y vsftpd

3 開啓服務

service httpd start

4 設置開機啓動

能夠用vim

systemctl list-unit-files | grep vsftpd

查看是否開機啓動.顯示disabled.瀏覽器

在這裏插入圖片描述

經過bash

chkconfig vsftpd on

開啓自啓,再次執行systemctl,能夠看到變成了enabled.服務器

5 修改/etc/vsftpd/vsftpd.conf

sudo vim /etc/vsftpd/vsftpd.conf

首先修改測試

在這裏插入圖片描述

爲YES.spa

再添加一行anon_upload_enable=YES3d

在這裏插入圖片描述

第一行的意思是容許匿名登陸,第二行的意思是容許匿名上傳.
重啓服務.rest

service vsftpd restart

6 建立測試文件

cd /var/ftp/pub
sudo vim test

在這裏插入圖片描述

7 測試

7.1 瀏覽器測試

7.1.1 匿名測試

ifconfig獲取內網ip,在瀏覽器中輸入ftp://ip.code

在這裏插入圖片描述

能夠看到有一個pub文件夾,裏面有剛纔新建的test文件.

在這裏插入圖片描述

在這裏插入圖片描述

右鍵保存便可下載文件.

在這裏插入圖片描述

下載完成.

在這裏插入圖片描述

去終端看看.

在這裏插入圖片描述

7.1.2 用戶登陸測試

輸入

ftp://username@ip

在這裏插入圖片描述

再輸入用戶密碼.

默認訪問的是用戶根目錄下的文件,這裏顯示出來了.

在這裏插入圖片描述

下載的話同上,右鍵選擇便可.

7.2 ftp命令測試

首先安裝ftp:

sudo yum install ftp

7.2.1 匿名測試

ftp ip

這裏用戶名選擇ftp,密碼爲空,表示匿名登陸.ftp爲默認的匿名登陸用戶名,至於密碼,能夠在/etc/vsftpd/vsftpd.conf中設置一個

no_anon_password=YES

這樣匿名用戶能夠不用密碼登陸.

在這裏插入圖片描述

7.2.1.1 上傳測試

直接使用put命令,後面接上文件,這裏的upload.txt是執行ftp以前的所在文件夾下的upload.txt

在這裏插入圖片描述

這裏提示不能建立文件,是權限的緣由,要確保/var/ftp/pub對"other"用戶有寫權限.

在這裏插入圖片描述

默認的/var/ftp/pub的權限是644,修改爲647.

sudo chmod 647 /var/ftp/pub

同時修改上傳文件的權限,容許other用戶可讀.

sudo chmod 644 /root/upload.txt

若是不行,使用selinux設置.

getsebool -a | grep ftp

在這裏插入圖片描述

把ftpd_full_access開啓:

setsebool ftpd_full_access on

在這裏插入圖片描述

再進入upload.txt所在的文件夾,執行ftp,再次put.

在這裏插入圖片描述

成功!

在這裏插入圖片描述

7.2.1.2 下載測試

直接get文件便可,因爲上面已經設置好了權限,因此不會出現問題.

在這裏插入圖片描述

在這裏插入圖片描述

若出現權限問題可從三方面入手:

  • (1)/var/ftp/pub的對other用戶的可讀權限:由於是下載,並且匿名,因此只須要對other用戶的可讀權限
  • (2)被下載文件的對other用戶的可讀權限
  • (3)selinux的問題,設置ftpd_full_access爲on

7.2.2 用戶登陸測試

執行ftp時用對應用戶名與密碼登陸.

在這裏插入圖片描述

默認進入了用戶根目錄.

7.2.2.1 上傳測試

直接put便可.

在這裏插入圖片描述

在這裏插入圖片描述

若出現權限問題參照上面7.2.1.2的那三條方法.

7.2.2.2 下載測試

隨便在用戶根目錄新建一個文件,這裏是kr.

在這裏插入圖片描述

直接get便可.

在這裏插入圖片描述

在這裏插入圖片描述

7.3 wget測試

wget用來下載文件,初始下載的目錄與ftp登陸時的目錄一致,好比匿名登陸ftp,登陸的是/var/ftp目錄,則wget會從這個/var/ftp目錄下載文件,下載到執行wget命令所在的目錄.使用用戶"kr"登陸ftp,則登陸的是/home/kr目錄,wget會從/home/kr下載文件.

7.3.1 匿名測試

注意,請確保被下載文件對other用戶有可讀權限.

sudo chmod o+w xxxxxx

而後使用wget

wget ftp://ip/pub/xxxx

在這裏插入圖片描述

在這裏插入圖片描述

7.3.2 用戶登陸測試

使用--ftp-user,--ftp-password指定用戶名與密碼,其他同上.

wget ftp://ip/xxx --ftp-user=xxxx --ftp-password=xxxx

在這裏插入圖片描述

成功.

8 總結

呃....簡單來講,就是先安裝好ftp與vsftpd,而後修改/etc/vsftpd/vsftpd.conf添加相應權限,對於不能上傳與下載的緣由,基本上都是權限的問題,主要就是三方面:

  • (1)ftp目錄的權限:好比能夠是/var/ftp/pub沒有對應的寫權限致使上傳失敗,沒有對應讀權限致使下載失敗.
  • (2)被上傳文件的權限:好比上傳的文件沒有讀權限致使上傳失敗.
  • (3)selinux:使用setsebool設置爲on.

解決權限問題後,基本就能夠經過ftp或wget順利地使用這個ftp服務器上傳/下載文件了.

相關文章
相關標籤/搜索