搞了下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
便可