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

ftp安裝和虛擬用戶創建(終於搞清楚了)

sftp att word 很多 刪除 用戶創建 手動 人員 require

之前領導叫我在Linux下搭建一個FTP服務器,搞一個公司內部人員文件結構,並對相應人員設置相應的訪問權限,之前網上有很多安裝方法,但是都是很傻瓜式地安裝,用戶簡單地創建,而我當時也是用的最笨的方法創建了很多的本地用戶,並對本地用戶實現了領導布置的要求,但添加用戶,並對用戶地管理起來很麻煩,特別是添加新用戶的時候,最終沒有能夠搞定簡單實用的這個問題。知道這個問題出現在創建的是本地用戶,而非虛擬用戶,當時用的Ubuntu12.04的好像沒有db_load 安裝的時候,又沒有對應的數據源,當時,就沒有繼續做下去了(當時就是問題解決了,但是不實用,所以沒有用起來,也不想搞了,暫放一邊了)技術分享圖片。今天重新整理自己的知識時,又將該問題翻了出來,準備實踐一遍。接下來就是給大家在網上找了一篇還行的文章,分享一下:

安裝

  1.安裝

  sudo apt-get install vsftpd

  2 查看安裝結果

  安裝完畢,檢查vsftpd進程是否已啟動,可以查看進程或者查看監聽端口

  1.   ps -eaf|grep vsftpd

  2.   tony@T:~$ ps -eaf | grep vsftpd

  3.   root 2244 1 0 21:08 ? 00:00:00 /usr/sbin/vsftpd

  4.   tony 2408 2104 0 21:11 pts/0 00:00:00 grep --color=auto vsftpd

  5.   netstat -tnl | grep :21

  6.   tony@T:~$ netstat -tnl | grep :21

  7.   tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

  8.   端口21正在被監聽

  3. 嘗試匿名用戶登錄

  安裝完後不用做任何配置既可用匿名方式進行訪問,默認的ftp文件夾為/srv/ftp。

  登錄可以在瀏覽器中,文件夾輸入框中以及類型windows/Linux終端中進行測試。

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

  更改配置文件vsftpd.conf

  anonymous_enable=YES

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

  1.   C:\Users\Tony>ftp 192.168.1.108

  2.   連接到 192.168.1.108。

  3.   220 (vsFTPd 2.2.2)

  4.   用戶(192.168.1.108:(none)): ftp

  5.   331 Please specify the password.

  6.   密碼:

  7.   230 Login successful.

  登錄到的目錄就是/srv/ftp目錄,在裏面的文件就能夠查看到

  4. 使用ubuntu的賬戶登錄

  此時就訪問ftp賬戶,默認是linux的賬戶,使用cmd中登錄。

  需要註意的是,ftp服務器端文件路徑是用戶的家目錄

  1.   C:\Users\Tony>ftp 192.168.1.108

  2.   連接到 192.168.1.108。

  3.   220 (vsFTPd 2.2.2)

  4.   用戶(192.168.1.108:(none)): tony

  5.   331 Please specify the password.

  6.   密碼:

  7.   230 Login successful.

  5. 在ubuntu中,vsftpd的主要配置文件分布如下:

  1.   /etc/vsftpd.conf vsftpd服務器的配置文件

  2.   /usr/sbin/vsftpd vsftpd服務器的進程文件

  3.   /etc/pam.d/vsftpd vsftpd服務器的PAM接口配置文件

  4.   /var/ftp vsftpd服務器匿名用戶的工作目錄

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

  1.   sudo /etc/init.d/vsftpd start #開始

  2.   sudo /etc/init.d/vsftpd stop #關閉

  3.   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的參數使用如下:

  1.   listen=YES

  2.   #listen_ipv6=YES

  3.   anonymous_enable=NO //允許匿名用戶訪問,若禁止使用NO

  4.   local_enable=YES //允許本地用戶訪問,若禁止則使用NO

  5.   write_enable=YES //表示是否允許本地用戶有上傳權限的,YES表示可以,NO表示禁止,也取決於客戶端連接時使用的客戶端工具

  6.   #local_umask=022 //設置本地用戶上傳建立文件時的權限掩碼

  7.   #anon_upload_enable=YES //匿名用戶上傳文件使能

  8.   #anon_mkdir_write_enable=YES //匿名用戶可以創建目錄

  9.   dirmessage_enable=YES //用戶切換進入目錄時顯示.message(如果存在)文件的內容

  10.   message_file=Welcome

  11.   xferlog_enable=YES //是否開啟傳輸日誌的

  12.   connect_from_port_20=YES ////連接控制端口為20

  13.   chown_uploads=YES

  14.   chown_username=ftp

  15.   chroot_local_user=YES //所有的本地用戶都被鎖定在家目錄下

  16.   chroot_list_enable=YES

  17.   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

  18.   xferlog_file=/var/log/vsftpd.log

  19.   xferlog_std_format=YES

  20.   idle_session_timeout=600

  21.   data_connection_timeout=120 //#數據連接的超時時間

  22.   #nopriv_user=ftpsecure

  23.   #async_abor_enable=YES

  24.   ascii_upload_enable=YES

  25.   ascii_download_enable=YES

  26.   ftpd_banner=Welcome to blah FTP service. //login歡迎信息

  27.   #deny_email_enable=YES

  28.   max_clients=10

  29.   max_per_ip=5

  30.   local_max_rate=256000

  31.   #hide_ids=YES

  32.   idle_session_timeout=3000

  33.   guest_enable=YES

  34.   guest_username=ftp

  35.   user_config_dir=/etc/vsftpd/vsftpd_user_conf

  36.   pam_service_name=vsftpd.vu

  3. 建立各賬戶的home目錄

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

  1. cd /home/ftp/

  2.   sudo mkdir ftpdir

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

  1.   cd ftpdir

  2.   sudo mkdir admin tony

  4.為虛擬用戶創建本地系統用戶

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

  1.   sudo useradd ftp -d /home/ftpdir -s /bin/false

  2.   sudo chown -R ftp:ftp /home/ftpdir

  5. 創建虛擬用戶數據庫

  新建loguser.txt文件,

  sudo vi /home/loguser.txt

  裏面輸入虛擬用戶名和密碼,格式如下

  1.   admin

  2.   admin

  3.   tony

  4.   tony

  註意不要多空格和空行,其中奇數行為用戶名,偶數行為密碼。

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

  1.   新建一個文件夾/etc/vsftpd,放置配置文件

  2.   sudo mkdir /etc/vsftpd

  3.   然後執行

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

  5.   最後設置一下數據庫文件的訪問權限

  6.   sudo chmod 600 /etc/vsftpd/vsftpd_login.db

  6. 配置PAM文件

  1.   新建/etc/pam.d/vsftpd.vu,並編輯,

  2.   sudo touch /etc/pam.d/vsftpd.vu

  3.   sudo vi /etc/pam.d/vsftpd.vu

  4.   輸入內容如下:

  5.   auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

  6.   account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

  7.新建etc/vsftpd /vsftpd_user_conf文件夾

  1.   sudo mkdir /etc/vsftpd/vsftpd_user_conf

  2.   現在,我們要把各個用戶的配置文件放到目錄/etc/vsftpd/vsftpd_user_conf中

  3.   cd /etc/vsftpd/vsftpd_user_conf

  4.   sudo touch admin tony

  8. 配置admin虛擬用戶

  權限:上傳,下載刪除,重命名.

  1.   sudo vi /etc/vsftpd/vsftpd_user_conf/admin

  2.   裏面添加

  3.   write_enable=YES

  4.   anon_world_readable_only=NO

  5.   anon_upload_enable=YES

  6.   anon_mkdir_write_enable=YES

  7.   anon_other_write_enable=YES

  8.   local_root=/home/ftpdir

  9. 配置tony虛擬用戶

  權限:上傳,下載

  1.   sudo vi /etc/vsftpd/vsftpd_user_conf/tony

  2.   裏面添加

  3.   write_enable=YES

  4.   anon_world_readable_only=NO

  5.   anon_upload_enable=YES

  6.   anon_mkdir_write_enable=NO

  7.   anon_other_write_enable=NO

  8.   local_root=/home/ftpdir/tony

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

  1.   sudo touch /etc/vsftpd/vsftpd.chroot_list

  2.   sudo vi /etc/vsftpd/vsftpd.chroot_list

  3.   裏面添加

  4.   admin

在按照以上的過程去安裝,有可能Linux的數據源裏面根本就找不到對應的安裝包,可以通過手動安裝的方法;網上找了篇db4的安裝問題,分享一下:

1、下載安裝文件:


下載地址直達:http://cz.archive.ubuntu.com/ubuntu/pool/universe/d/db4.8/

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

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

總結:知識積累是多麽地重要啊!

ftp安裝和虛擬用戶創建(終於搞清楚了)