Ubuntu下搭建ftp服務器


本文遵守CC BY-SA 3.0

前言
  最近項目需要搭建第三方文件服務器,本來使用的是apache服務器將需要的子項目的目錄發布出來,然后通過軟連接將所有子項目關聯起來,但是如果不同時將所有子項目跑起來的話,未開啟的項目目錄就會丟失,着實蛋疼,所以才有搭建ftp服務器的想法,下面開始正文。

一、安裝

  如果是ubuntu環境下的話,安裝是很簡單的,只需輸入如下命令:

  安裝

sudo apt-get install vsftpd

  安裝完成后可以察看下服務狀態(其實安裝完成了就會提示已經在跑了)

sudo service vsftpd status

二、配置文件

  其實我用到的文件只有三個

  1. /etc/vsftp.conf(主配置文件)

  2. /etc/vsftp.chroot_list(可訪問用戶列表,這個在我這里貌似不是已有的,我是手建的,這個察看上面那個配置文件就會發現,配置文件里面有關聯)

  3. /etc/pam.d/vsftpd(里面有個選項需要修改,這個需要簡單配置一下,否則會出現“530 login incorrect”的錯誤)

 

  下面開始逐個文件說明:

  1./etc/vsftpd.config 里面的注釋比較多,還很詳細,這里就不一一列舉了,只寫上我修改的

    anonymous_enable=NO(是否允許匿名登陸)

    local_enable=YES(是否允許本地登陸)

    write_enable=YES(設置FTP可寫)

    //chroot (Change Root)

    chroot_local_user=YES(設置成YES后,加入vsftpd.chroot_list中的用戶可以通過ftp訪問)

    chroot_list_enable=YES(啟用下面這個vsftpd.chroot_list)

    chroot_list_file=/etc/vsftpd.chroot_list(指定一下list,這是文件默認的,但是並不存在,需要手動弄一下)

    pam_service_name=vsftpd(這里留個標記,在一定情況下會出現530的問題,留到后面錯誤去講)

  2./etc/vsftpd.chroot_list

    這個文件比較簡單,之需要將允許ftp登陸的用戶名放進來就行,一個一行,我之前一直比較憤怒,網上在這里就這么說一下,都沒個例子,這叫勞資怎么填,其實很簡單,比如像這樣:

user
user2
user22

    =========================我風騷地插了進來=============================

    由於說到了添加用戶,其實是這樣的,你可以使用本地已經存在的用戶,但是作為一個淡定的ftp服務器,是不應該把本機的東西都共享給外面的,最好的方法就是再創建個用戶專門給ftp使用

    所以這里來搞一下用戶的問題

    添加(-d是指定的用戶主目錄,-m接要創建的用戶名),

sudo useradd -d /home/user -m username

    創建完了用戶還需要個用戶密碼,

sudo passwd username

    Whatever,要是想刪了,

sudo userdel username

    這里還要留個標記,關於創建用戶之后,一些情況下可能會出現個500的錯誤,留到后面錯誤去講

    好了,現在察看下創建結果,發着光的那條

user@userServer:/home$ ll
總用量 xx
drwxr-xr-x  7 root   root    4096  4月 24 11:27 ./
drwxr-xr-x 25 root   root    4096  4月  9 09:47 ../
drwxr-xr-x  2 heihei    heihei     4096  4月 24 11:27 heihei/
drwxr-xr-x  6 haha    haha     4096  2月 15 18:08 haha/ drwxr-xr-x 75 username    username    4096  4月 24 13:18 username/

    ==================================================================

  3./etc/pam.d/vsftpd

    這個文件其實也沒多少東西,就改一處即可:

auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpuser onerr=succeed

    默認是ftpuser,這里改成放入vsftpd.chroot_list里面的用戶就行了,不要在意那個deny,他不應該是allow,他不是不讓你使用,淡定..

三、登陸

  其實有好多方法登陸的

  1.命令行

    ip地址用你的..

    那個username應該是當前的用戶,不要管他,除非和ftp用戶是一個;

    user就是你的ftp用戶,先前創建的那個,要是和當前用戶是一個的話直接回車過去;

    passwd輸入;

    搞定

user@userServer:/home$ ftp 192.168.1.123
Connected to 192.168.1.123.
220 (vsFTPd 2.3.5)
Name (192.168.1.123:username): user
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

   2.瀏覽器

    在地址欄輸入(your ip address):  ftp://192.168.1.123

  3.在windows的目錄地址上面敲入上面的地址

四、錯誤

  終於到了這里,事情從不會那么容易就讓你直接完成,就那么幾個問題,可能不經意見就中了套..

  1.530 login Incorrect

    話說這個問題貌似幾個情況都會出現:

    (1)pam_service_name=vsftpd 就是前面vsftpd.conf文件里面那廝,我在第一台PC上面搭建的時候文件里面沒有,據說是因為這句話,由於第一台PC上面問題較多,我也不確定是不是這個問題

    (2)還記得/etc/pam.d/vsftpd那個文件不,說了不要動deny,是不是手賤

    (3)還沒發現,這是為了可擴展性,:-)

  2.500 OOPS: cannot change directory:/home/**

    (1)網上說法比較統一,一般是說設置一堆參數就好了,可以查一下

    (2)我說說我的錯誤原因哈,MD其實就是ftp用戶創建的時候我把文件夾權限限定了,如果你的用戶沒有各種權限也會出這種問題,這個時候你只需要:

sudo chmod 755 userDir/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM