網上關于pureftp的安裝教程很多,但是試了以後發現很多其實都不完善,很容易出錯,自己安裝摸索以後總結如下:
首先安裝之前最好用netstat -ntl來檢視ftp預設的21端口是不是已經被占用了,同時也可以用ps -ef 指令檢視開啟了哪些服務,看一下有沒有類似sftp或者是vsftp的服務,如果開啟,用killall sftp指令把這個服務kill掉
1.下載下傳pureftp,我下載下傳的是pure-ftpd-1.0.30
指令:wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.bz2
2.解壓:tar -xvjf pure-ftpd-1.0.30.tar.bz2
進入到解壓後目錄:cd pure-ftpd-1.0.30
3.編譯方式,推薦使用全部安裝:./configure –prefix=/usr/local/pure-ftpd/ –with-language=simplified-chinese –with-everything
4.安裝:make && make check && make install
5.建立相應的安裝目錄:mkdir /usr/local/pure-ftpd/etc
6.把配置檔案和主要執行檔案拷到對應的檔案夾下面:
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/
cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl
7.定制一下系統的環境變量:
cd /usr/local/bin/
ln -s /usr/local/pure-ftpd/bin/* .
ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/
8.啟動pureftp伺服器:
pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
螢幕上一般顯示如下資訊:
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -b -B -C20 -d -e -fnone -H -I15 -L2000:8 -M -m4 - p45000:50000 -q1:10 -s -t200 -U133:022 -u100 -r -Oclf:/var/log/pureftpd.log -k99 -Z
此時可以用在指令行視窗下telnet ip位址 21的方式探測一下這個端口是不是通的
9.pureftp一般需要不用預設的root使用者進行操作,一般會另外建立使用者名群組,用虛拟使用者進行登入
建立組:groupadd ftpgroup
建立使用者:useradd -g ftpgroup -d /dev/null -s /etc ftpuser
建立完成以後可以用cat /etc/passwd和cat /etc/group來檢視組和使用者是否已經建立好了
10.添加ftp虛拟使用者
pure-pw useradd test -u ftpuser -d /home/ftpuser/test
如果添加完成以後想要删除可以使用pure-pw userdel test這條指令
想要修改密碼可以使用pure-pw passwd test這條指令
11.檢視使用者資訊
pure-pw show test
12.生成資料庫檔案
pure-pw mkdb
13.一定要注意修改配置檔案,因為很多配置檔案資料庫的預設安裝位置并不是實際位置,這樣就會造成每次登陸的時候都找不到密碼,ftp一直顯示passwd required,是以安裝好以後一定要修改配置檔案,尤其是粉紅色的部位,注意修改
打開配置檔案:vi /usr/local/pure-ftpd/etc/pure-ftpd.conf
ChrootEveryone yes # 啟用chroot
BrokenClientsCompatibility yes # 相容不同用戶端
Daemonize yes # 背景運作
MaxClientsPerIP 20 # 每個ip最大連接配接數
VerboseLog yes # 記錄日志
DisplayDotFiles no # 顯示隐藏檔案
AnonymousOnly no # 隻允許匿名使用者通路
NoAnonymous yes # 不允許匿名使用者連接配接
SyslogFacility none # 不将日志在syslog日志中顯示
DontResolve yes # 不進行用戶端DNS解析
MaxIdleTime 15 # 最大空閑時間
LimitRecursion 2000 8 # 浏覽限制,檔案2000,目錄8層
AnonymousCanCreateDirs no # 匿名使用者可以建立目錄
MaxLoad 4 # 超出負載後禁止下載下傳
PassivePortRange 45000 50000 # 被動模式端口範圍
AnonymousRatio 1 10 # 匿名使用者上傳/下載下傳比率
UserRatio 1 10 # 所有使用者上傳/下載下傳比率
AntiWarez yes # 禁止下載下傳匿名使用者上傳但未經驗證的檔案
AnonymousBandwidth 200 # 匿名使用者帶寬限制(KB)
UserBandwidth 8 # 所有使用者最大帶寬(KB)
Umask 133:022 # 建立檔案/目錄預設掩碼
MinUID 100 # 最大UID限制
AllowUserFXP no # 僅運作使用者進行FXP傳輸
AllowAnonymousFXP no # 對匿名使用者和非匿名使用者允許進行匿名 FXP 傳輸
ProhibitDotFilesWrite no # 不能删除/寫入隐藏檔案
ProhibitDotFilesRead no # 禁止讀取隐藏檔案
AutoRename yes # 有同名檔案時自動重新命名
AnonymousCantUpload yes # 不允許匿名使用者上傳檔案
AltLog clf:/var/log/pureftpd.log # clf格式日志檔案位置
PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb # 使用者資料庫檔案
MaxDiskUsage 99 # 當磁盤使用量打到99%時禁止上傳
CreateHomeDir yes # 如果虛拟使用者的目錄不存在則自動建立
CustomerProof yes # 防止指令誤操作
PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb這個地方一定要記得修改,不然會一直登不上去,修改完成以後可以再次執行
14.重新生成資料庫檔案pure-pw mkdb
15.先把之前的pureftp服務kill掉 killall pure-ftpd
16.然後重新啟動/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
17.此時一般已經可以成功登入,但是有可能還是無法上傳到伺服器上去,此時一般是權限問題,
登入到ftp的家目錄下 cd /home/ftpuser/test
修改test檔案夾下的檔案權限 chown ftpuser:ftpgroup wenjian1
再嘗試重新連接配接以後上傳。