然後建立兩個使用者:ftp和ftpadmin,home目錄都是/home/ftp
下面是proftpd的設定檔,比較全面的配置
# cat /usr/local/etc/proftpd.conf
-------------------------------------------------------------------------
ServerName "babydragon's FTP" #伺服器的名字
ServerType standalone #proftpd啟動並執行方式,有standalone和inetd
DeferWelcome off #只有在認證使用者之後才顯示歡迎資訊
Port 21 #ftp串連連接埠
Umask 002 #新檔案的許可權掩碼
TimeoutLogin 120 #登陸時允許idle的時間
TimeoutIdle 600 #登陸後允許idle的時間
TimeoutNoTransfer 900 #沒有資料轉送時允許idle的時間
AllowStoreRestart on #允許斷點續上傳
AllowRetrieveRestart on #允許斷點續下載
PassivePorts 50000 65534 #指定資料連接埠的範圍
User nobody #以nobody,nogroup的身份運行程式
Group nogroup
RequireValidShell no #使用者是否擁有shell,關閉安全
MaxClientsPerHost 2 #每個ip只能有兩個串連
MaxClientsPerUser 1 #每個帳號只能有一個串連
DefaultRoot ~ #ftp的根目錄,~限制使用者只能訪問自己的目錄
UseReverseDNS off #關閉DNS反向查詢,節省連線時間
TransferLog /var/spool/syslog/proftpd/xferlog.legacy #資料轉送記錄
LogFormat auth "%v %P %h %t "%r/" %s"
LogFormat write "%h %l %u %t "%r/" %s %b"
# 定義了幾種日誌格式,可以根據自己的需要定製:
# %a:客戶ip
# %A:匿名使用者名(就是匿名使用者的password)
# %b:發送請求的位元組數
# %d:目錄名(相對路徑)
# %D:目錄名(絕對路徑)
# %f:上傳或下載的檔案名稱(絕對路徑)
# %F:上傳或下載的檔案名稱(相對路徑)
# %h:客戶的網域名稱
# %L:本伺服器ip
# %m:客戶發送的命令
# %p:本伺服器的連接埠
# %P:服務進程的id
# %r:客戶發送的整條命令
# %t:本地時間
# %T:傳送檔案所用的時間(秒)
# %u:客戶登陸的使用者名稱
<Global>
#設定一些全域參數
DisplayLogin welcome.msg
#顯示~/welcome.msg中的歡迎資訊,可以編輯welcome.msg自己制定歡迎資訊
# %T 當前的時間
# %F 所在硬碟剩下的空間
# %C 當前所在的目錄
# %R:客戶的主機名稱
# %U:客戶登陸的帳號
# %M:允許最大串連數
# %N:當前的串連人數
# %E:FTP伺服器管理員的email
# %i:本次上傳的檔案數量
# %o:本次下載的檔案數量
AllowOverwrite yes #允許檔案可以重新寫
IdentLookups off #尋找客戶的遠端使用者名,關掉節省連線時間
ExtendedLog /var/spool/syslog/proftpd/access.log WRITE,READ write
#以write的日誌格式記錄READ,WRITE的日誌
ExtendedLog /var/spool/syslog/proftpd/auth.log AUTH auth
#以auth的日誌格式記錄AUTH的日誌
</Global>
<Anonymous />
User ftp
Group ftp
UserAlias anonymous ftp #匿名使用者以ftp使用者登陸
RequireValidShell no #使用者有沒shell也可以使用FTP(安全)
MaxClients 20 #最大客戶數
MaxInstances 30 #串連的間隔時間
MaxLoginAttempts 10 #串連的最大次數
<Limit LOGIN>
Order deny,allow
Deny from 172.16.0.0/11 #禁止172.16.0.0/11網段訪問
Allow from all
</Limit>
<Directory pub>
<Limit READ>
AllowAll #所有人在pub目錄有讀許可權
</Limit>
<Limit WRITE>
AllowUser ftpadmin #ftpadmin使用者擁有寫入權限
DenyAll #其他使用者無寫入權限
</Limit>
<Directory slow>
RateReadBPS 1024000 #下載最高速1M/s
RateReadFreeBytes 10240000 #下載總速度不超過10M/s
</Directory>
<Directory Incoming>
<Limit STOR MKD>
AllowAll #所有人都可以在incoming目錄上傳檔案,建立目錄
</Limit>
<Limit WRITE>
AllowUser ftpadmin #允許ftpadmin使用者寫
DenyAll #其他使用者無寫入權限
</Limit>
RateWriteBPS 1024000 #上傳最高速1M/s
RateWriteFreeBytes 10240000 #上傳總速度不超過10M/s
</Directory>
</Anonymous>
#<LIMIT>容器內有以下許可權:
# CWD:改變所在目錄
# MKD/XMKD:建立目錄
# RNFR/RNTO:重新命名目錄的(一起使用)
# DELE:刪除檔案
# RMD/XRMD:刪除目錄
# RETR:下載
# STOR:上傳
# LOGIN:登陸
# READ:包括了RETR,SITE,SIZE,STAT
# WRITE:包括了APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD
# DIRS:包括了DUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD
# ALL:包括了READ WRITE DIRS
#以上許可權結合動作一起使用:
# AllowUser:允許某個使用者
# DenyUser:禁止某個使用者
# AllowGroup:允許某個使用者組
# DenyGroup:禁止某個使用者組
# AllowAll:允許所有使用者
# DenyAll:禁止所有使用者