1. 程式人生 > >ftp安裝和虛擬使用者建立(終於搞清楚了)

ftp安裝和虛擬使用者建立(終於搞清楚了)

       之前領導叫我在Linux下搭建一個FTP伺服器,搞一個公司內部人員檔案結構,並對相應人員設定相應的訪問許可權,之前網上有很多安裝方法,但是都是很傻瓜式地安裝,使用者簡單地建立,而我當時也是用的最笨的方法建立了很多的本地使用者,並對本地使用者實現了領導佈置的要求,但新增使用者,並對使用者地管理起來很麻煩,特別是新增新使用者的時候,最終沒有能夠搞定簡單實用的這個問題。知道這個問題出現在建立的是本地使用者,而非虛擬使用者,當時用的Ubuntu12.04的好像沒有db_load 安裝的時候,又沒有對應的資料來源,當時,就沒有繼續做下去了(當時就是問題解決了,但是不實用,所以沒有用起來,也不想搞了,暫放一邊了)大笑

。今天重新整理自己的知識時,又將該問題翻了出來,準備實踐一遍。接下來就是給大家在網上找了一篇還行的文章,分享一下:

安裝

  1.安裝

  sudo apt-get install vsftpd

  2 檢視安裝結果

  安裝完畢,檢查vsftpd程序是否已啟動,可以檢視程序或者檢視監聽埠

  ps  -eaf|grep  vsftpd
  tony@T:~$ ps -eaf | grep vsftpd
  root      2244     1  0 21:08 ?        00:00:00 /usr/sbin/vsftpd
  tony      2408  2104  0 21:11 pts/0    00
:00:00 grep --color=auto vsftpd   netstat -tnl | grep :21   tony@T:~$ netstat -tnl | grep :21   tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN   埠21正在被監聽

  3. 嘗試匿名使用者登入

  安裝完後不用做任何配置既可用匿名方式進行訪問,預設的ftp資料夾為/srv/ftp。

  登入可以在瀏覽器中,資料夾輸入框中以及型別windows/Linux終端中進行測試。

  建議使用windows/Linux終端測試,失敗了會有錯誤輸出,可以根據錯誤進行除錯。

  更改配置檔案vsftpd.conf

  anonymous_enable=YES

  匿名登入,使用者名稱稱ftp,密碼不輸入,直接回車

  C:\Users\Tony>ftp 192.168.1.108
  連線到 192.168.1.108。
  220 (vsFTPd 2.2.2)
  使用者(192.168.1.108:(none)): ftp
  331 Please specify the password.
  密碼:
  230 Login successful.

  登入到的目錄就是/srv/ftp目錄,在裡面的檔案就能夠檢視到

  4. 使用ubuntu的賬戶登入

  此時就訪問ftp賬戶,預設是linux的賬戶,使用cmd中登入。

  需要注意的是,ftp伺服器端檔案路徑是使用者的家目錄

  C:\Users\Tony>ftp 192.168.1.108
  連線到 192.168.1.108。
  220 (vsFTPd 2.2.2)
  使用者(192.168.1.108:(none)): tony
  331 Please specify the password.
  密碼:
  230 Login successful.

  5. 在ubuntu中,vsftpd的主要配置檔案分佈如下:

  /etc/vsftpd.conf      vsftpd伺服器的配置檔案
  /usr/sbin/vsftpd      vsftpd伺服器的程序檔案
  /etc/pam.d/vsftpd     vsftpd伺服器的PAM介面配置檔案
  /var/ftp              vsftpd伺服器匿名使用者的工作目錄

  6. vsftpd的開始、關閉和重啟

  sudo /etc/init.d/vsftpd  start   #開始
  sudo /etc/init.d/vsftpd  stop    #關閉
  sudo /etc/init.d/vsftpd  restart #重啟

建立虛擬賬戶

  1.安裝生成虛擬帳號資料庫工具db

  sudo apt-get install db4.8-util

  2. 更改vsftp.conf的配置

  修改配置之前,先備份當前配置

  sudo cp /etc/vsftp.conf /etc/vsftp.conf.old

  配置的伺服器中 vsftpd.conf的引數使用如下:

  listen=YES
  #listen_ipv6=YES
  anonymous_enable=NO //允許匿名使用者訪問,若禁止使用NO
  local_enable=YES    //允許本地使用者訪問,若禁止則使用NO
  write_enable=YES //表示是否允許本地使用者有上傳許可權的,YES表示可以,NO表示禁止,也取決於客戶端連線時使用的客戶端工具
  #local_umask=022 //設定本地使用者上傳建立檔案時的許可權掩碼
  #anon_upload_enable=YES //匿名使用者上傳檔案使能
  #anon_mkdir_write_enable=YES //匿名使用者可以建立目錄
  dirmessage_enable=YES //使用者切換進入目錄時顯示.message(如果存在)檔案的內容
  message_file=Welcome
  xferlog_enable=YES      //是否開啟傳輸日誌的
  connect_from_port_20=YES ////連線控制埠為20
  chown_uploads=YES
  chown_username=ftp
  chroot_local_user=YES //所有的本地使用者都被鎖定在家目錄下
  chroot_list_enable=YES
  chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
  xferlog_file=/var/log/vsftpd.log
  xferlog_std_format=YES
  idle_session_timeout=600
  data_connection_timeout=120 //#資料連線的超時時間
  #nopriv_user=ftpsecure
  #async_abor_enable=YES
  ascii_upload_enable=YES
  ascii_download_enable=YES
  ftpd_banner=Welcome to blah FTP service. //login歡迎資訊
  #deny_email_enable=YES
  max_clients=10
  max_per_ip=5
  local_max_rate=256000
  #hide_ids=YES
  idle_session_timeout=3000
  guest_enable=YES
  guest_username=ftp
  user_config_dir=/etc/vsftpd/vsftpd_user_conf
  pam_service_name=vsftpd.vu

  3. 建立各賬戶的home目錄

  在/home目錄建立ftp的賬戶ftpdir目錄

    cd /home/ftp/
  sudo  mkdir  ftpdir

  然後在ftpdir目錄下建立admin, tony目錄

  cd  ftpdir
  sudo  mkdir admin tony 

  4.為虛擬使用者建立本地系統使用者

  虛擬使用者家目錄為/home/ftpdir, 使用者登入終端設為/bin/false(即使之不能登入系統)

  sudo useradd ftp -d /home/ftpdir -s /bin/false
  sudo chown -R ftp:ftp /home/ftpdir

  5. 建立虛擬使用者資料庫

  新建loguser.txt檔案,

  sudo vi /home/loguser.txt

  裡面輸入虛擬使用者名稱和密碼,格式如下

  admin
  admin
  tony
  tony

  注意不要多空格和空行,其中奇數行為使用者名稱,偶數行為密碼。

  最後一行需要回車(否則建立資料庫檔案時無法識別最後一行,導致報奇數行錯誤)。

  新建一個資料夾/etc/vsftpd,放置配置檔案
  sudo  mkdir  /etc/vsftpd
  然後執行
  sudo db4.8_load -T -t hash -f /home/loguser.txt /etc/vsftpd/vsftpd_login.db
  最後設定一下資料庫檔案的訪問許可權
  sudo chmod 600 /etc/vsftpd/vsftpd_login.db

  6. 配置PAM檔案

  新建/etc/pam.d/vsftpd.vu,並編輯,
  sudo touch /etc/pam.d/vsftpd.vu
  sudo vi /etc/pam.d/vsftpd.vu
  輸入內容如下:
  auth  required  /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login
  account  required  /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login

  7.新建etc/vsftpd /vsftpd_user_conf資料夾

  sudo  mkdir  /etc/vsftpd/vsftpd_user_conf
  現在,我們要把各個使用者的配置檔案放到目錄/etc/vsftpd/vsftpd_user_conf中
  cd  /etc/vsftpd/vsftpd_user_conf
  sudo touch admin tony

  8. 配置admin虛擬使用者

  許可權:上傳,下載刪除,重新命名.

  sudo vi /etc/vsftpd/vsftpd_user_conf/admin
  裡面新增
  write_enable=YES
  anon_world_readable_only=NO
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=YES
  local_root=/home/ftpdir

  9. 配置tony虛擬使用者

  許可權:上傳,下載

  sudo vi /etc/vsftpd/vsftpd_user_conf/tony
  裡面新增
  write_enable=YES
  anon_world_readable_only=NO
  anon_upload_enable=YES
  anon_mkdir_write_enable=NO
  anon_other_write_enable=NO
  local_root=/home/ftpdir/tony

  10. 新建/etc/vsftpd/vsftpd.chroot_list

  sudo touch /etc/vsftpd/vsftpd.chroot_list
  sudo vi /etc/vsftpd/vsftpd.chroot_list
  裡面新增
  admin
在按照以上的過程去安裝,有可能Linux的資料來源裡面根本就找不到對應的安裝包,可以通過手動安裝的方法;網上找了篇db4的安裝問題,分享一下:

1、下載安裝檔案:

2、dpkg - i  db4.8-util_4.8.30-11ubuntu1_amd64.deb

即可

命令使用:這裡針對Vsftpd虛擬使用者的建立

sudo db4.8_load -T -t hash -f /home/user.txt /etc/vsftpd_login.db

當然也有命令安裝db的方法:

已解決了  sudo apt-get install  db-util
       在這又不得不來句粗口,尼瑪,之前找了那麼久的解決辦法,原來是沒有找對方法,網上一大堆也是無用的,有些方法更本用不了,回頭想想當你的知識積累起來了之後,你就會忽然想起來這問題的解決方法,自己都會被自己驚呆,當年這麼簡單的問題居然都不會,當年真是傻呆笨啊!
總結:知識積累是多麼地重要啊!