Pure-FTP 類似linux下useradd/usermod/passwd工具的用戶管理方式。
1. 安裝
當前最新版本為1.0.21,可從官方網站下載。
wget http://download.pureftpd.org/pub/pureftpd/releases/pure-ftpd-1.0.21.tar.gz
tar zxvf pure-ftpd-1.0.21.tar.gz
cd pure-ftpd-1.0.21
./configure –prefix=/usr/local/pure-ftpd \
–with-everything
make
make install
mkdir /usr/local/pure-ftpd/etc
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/
cp configuration-file/pure-config.pl /usr/local/pure-ftpd/bin/
chmod +x /usr/local/pure-ftpd/bin/pure-config.pl
vi /usr/local/pure-ftpd/bin/pure-config.pl
my $PUREFTPD;
-x && ($PUREFTPD=$_, last) for qw(
${exec_prefix}/sbin/pure-ftpd
/usr/local/pure-ftpd/sbin/pure-ftpd
/usr/local/pureftpd/sbin/pure-ftpd
/usr/local/sbin/pure-ftpd
/usr/sbin/pure-ftpd
如果安裝的路徑跟上邊的不一樣,就要你的pure-ftpd路徑了。
2. 目錄結構說明
pure-ftpd/
|– bin #程序目錄
|– etc #配置文件和數據文件目錄
|– man #說明文件目錄
| -- man8
— sbin #程序目錄
3. 設置配置文件
ChrootEveryone yes #限制所有用戶在其主目錄中
BrokenClientsCompatibility no #兼容ie等比較非正規化的ftp客戶端
MaxClientsNumber 50 #伺服器總共允許同時連接的最大用戶數
Daemonize yes #做為守護(doemon)進程運行(Fork in background)
MaxClientsPerIP 8 #同一IP允許同時連接的用戶數
VerboseLog no #如果你要記錄所有的客戶命令,設置這個指令為 "yes"
DisplayDotFiles yes #即使客戶端沒有發送 『-a』 選項也列出隱藏文件
AnonymousOnly no #不允許認證用戶 – 僅作為一個公共的匿名FTP。
NoAnonymous yes #不允許匿名連接,僅允許認證用戶使用。
SyslogFacility ftp #預設的功能( facility )是 "ftp"。 "none" 將禁止日誌。
DontResolve yes #在日誌文件中不解析主機名。
MaxIdleTime 15 #客戶端允許的最大的空閑時間(分鐘,預設15分鐘)
PureDB /usr/local/pureftp-1.0.22/etc/pureftpd.pdb #PureDB 用戶資料庫
LimitRecursion 2000 8 #』ls』 命令的遞歸限制。第一個參數給出文件顯示的最大數目。第二個參數給出最大的子目錄深度。
AnonymousCanCreateDirs no #允許匿名用戶創建新目錄?
MaxLoad 4 #如果系統被 loaded 超過下面的值,匿名用戶會被禁止下載。
AntiWarez yes #不接受所有者為 "ftp" 的文件的下載。
Bind 10.10.10.10,21 #服務監聽的IP 地址和埠。
Umask 133:022 #新建目錄及文件的屬性掩碼值。<文件掩碼>;:<目錄掩碼>; .
MinUID 99 #認證用戶允許登陸的最小組ID(UID) 。
AllowUserFXP yes #僅允許認證用戶進行 FXP 傳輸。
AllowAnonymousFXP no #對匿名用戶和非匿名用戶允許進行匿名 FXP 傳輸。
ProhibitDotFilesWrite no #用戶不能刪除和寫點文件(文件名以 『.』 開頭的文件)
ProhibitDotFilesRead no #禁止讀點文件(文件名以 『.』 開頭的文件) (.history, .ssh…)
AutoRename no #永不覆蓋文件。當上傳的文件,其文件名已經存在時,自動重命名,如: file.1, file.2, file.3, …
AnonymousCantUpload no #不接受匿名用戶上傳新文件( no = 允許上傳)
AltLog clf #使用類似於Apache的格式創建一個額外的日誌文件
MaxDiskUsage 99 #來保護日誌文件。當所在磁碟分區使用超過百分之 X 時,將不在接受新的上傳。
CustomerProof yes
UnixAuthentication no #不起用 簡單的 Unix系統 認證方式(/etc/passwd)。
4、建立系統用戶和虛擬用戶
為了安全可以讓所有虛擬用戶共享同一個系統用戶。
/usr/sbin/groupadd ftpgroup
/usr/sbin/useradd -g ftpgroup -s /dev/null ftp
/usr/local/pure-ftpd/bin/pure-pw useradd test01 -u ftp -d /home/ftp/test01 -m
解釋:-u將虛擬用戶 test01 同系統用戶 ftp 關聯在一起。-d參數使 test01 只能訪問其 home 目錄。而如果想讓他訪問整個文件系統,可以用 -D 選項。
其他選項:
-t 下載帶寬限制
-T 上傳帶寬限制
-n 最大文件數目
-N 磁碟配額(單位M)
-q 上傳速度限制
-Q 下載速度限制
-r 允許某些ip/網段的客戶端訪問
-R 拒絕某些ip/網段的客戶端訪問
-i 允許本地某些ip/網段訪問(allow local host)
-I 拒絕本地某些ip/網段訪問(deny local host)
-y 同時最大連接數目
-z 允許連接伺服器的時間段,格式hhmm-hhmm,如 -z 0412-1618代表用戶只能在凌 晨4點12分至下午4點18分連接伺服器
-f passwd_file
-F puredb_file
-m 不必重啟Pure-FTPd以及重新生成puredb_file文件
如果進行帳戶操作時,沒有帶-m 參數,那就應該手動更新一下pdb數據:
/usr/local/stow/pure-ftpd-1.0.21/bin/pure-pw mkdb pureftpd.pdb
pure-pw useradd 添加用戶
pure-pw userdel 刪除用戶
pure-pw usermod 修改用戶
pure-pw show 查看用戶詳細信息
pure-pw list 查看所有用戶設置
pure-pw mkdb 生成數據文件
5、啟動PURE-FTPd
/usr/local/pure-ftpd/bin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
[火星人 ] Pure-FTP 配置已經有332次圍觀