Linux下搭建FTP服務器(Ubuntu16.04)

搞了下FTP服務器,基本上能遇到的問題都遇到了-。-!linux

先說步驟:shell

1.安裝vsftpd軟件包vim

sudo apt-get install vsftpd

2.打開配置文件服務器

vim /etc/vsftpd.conf

3.修改參數ui

一些參數能夠去掉註釋激活,爲了方便,你也能夠註釋所有,而後添加下面的設置rest

#這些設置系統默認是開啓的,能夠無論
listen=NO
listen_ipv6=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

#下面的就要自定義設置了,建議系統默認的無論,而後複製下面的

#是否容許匿名訪問,NO爲不容許
anonymous_enable=NO
#是否容許本地用戶訪問,就是linux本機中存在的用戶,YES容許
local_enable=YES
#是否開啓寫模式,YES爲開啓
write_enable=YES
#新建文件權限,通常設置爲022,那麼新建後的文件的權限就是777-022=755
local_umask=022

#是否啓動userlist爲經過模式,YES的話只有存在於userlist文件中的用戶才能登陸ftp(能夠理解爲userlist是一個白名單),NO的話,白名單失效,和下面一個參數配合使用
userlist_enable=YES
#是否啓動userlist爲禁止模式,YES表示在userlist中的用戶禁止登陸ftp(黑名單),NO表示黑名單失效,咱們已經讓userlist做爲一個白名單,因此無需使用黑名單功能
userlist_deny=NO
#指定哪一個文件做爲userlist文件,咱們稍後編輯這個文件
userlist_file=/etc/vsftpd.user_list

#是否限制本地全部用戶切換根目錄的權限,YES爲開啓限制,即登陸後的用戶不能訪問ftp根目錄之外的目錄,固然要限制啦
chroot_local_user=YES
#是否啓動限制用戶的名單list爲容許模式,上面的YES限制了全部用戶,能夠用這個名單做爲白名單,做爲例外容許訪問ftp根目錄之外
chroot_list_enable=YES
#設置哪一個文件是list文件,裏面的用戶將不受限制的去訪問ftp根目錄之外的目錄
chroot_list_file=/etc/vsftpd.chroot_list
#是否開啓寫模式,開啓後能夠進行建立文件夾等寫入操做
allow_writeable_chroot=YES

#設置ftp根目錄的位置,這個文件咱們稍後本身建立
local_root=/var/myftp

複製代碼

重啓vsftpdip

sudo /etc/init.d/vsftpd restart

4.添加ftp用戶get

順便將將用戶目錄設置爲咱們上面的ftp根目錄it

sudo useradd -d /var/myftp ftpuser

設置用戶密碼io

sudo passwd ftpuser

5.建立須要的文件,設置文件夾權限

上面咱們指定了兩個文件,userlist文件和list文件,有時候系統不會自動建立,你要本身建立

vim /etc/vsftpd.user_list

而後添加ftpuser進去做爲白名單的一員,多個用戶的話,按回車下一行。

vim /etc/vsftpd.chroot_list

設爲空便可

建立用戶文件夾,設置權限

mkdir /var/myftp

權限設置能夠根據你的使用場景來設置,我這裏在根目錄下禁止此用戶寫,而後下面建兩個文件夾,一個download只容許讀取,upload容許寫和讀複製代碼

chmod 555 /var/myftp
cd /var/myftp
mkdir upload
chmod 755 upload
mkdir download
chmod 555 download

最後檢查一下文件全部者,都改成ftpuser

6.使用ftp,解決各類問題

linux訪問輸入ftp 加 你的IP

ftp xxx.xxx.xxx.xxx

輸入用戶名ftpuser和密碼

若是登陸出現530錯誤:

vim /etc/pam.d/vsftpd

註釋掉#auth   required    pam_shells.so

而後ls一下,若是失敗了,切換到被動模式便可

passive mode

而後mkdir一下發現沒法建立文件夾 550 create directory operation failed

setsebool -P ftpd_disable_trans on
/etc/init.d/vsftpd restart

便可

相關文章
相關標籤/搜索