名稱 ftpaccess-ftpd的配置檔 描述 這個ftpaccess檔案是用來配置下述功能的運作 存取功能(AccessCapabilities) autogroup群組名稱類別[類別...] 如果一個匿名的(ANONYMOUS)使用者是任何類別的成員, 那麽ftp伺服器將會實行一次setegid()到該群組名稱 。這允
名稱
ftpa
clearcase/" target="_blank" >ccess - ftpd 的配置檔
描述
這個 ftpaccess 檔案是用來配置下述功能的運作
存取功能(Access Capabilities)
autogroup <群組名稱> <類別> [<類別> ...]
如果一個匿名的(ANONYMOUS) 使用者是任何 <類別> 的成員,
那麽 ftp 伺服器將會實行一次 setegid() 到該 <群組名稱>
。這允許特殊類別的匿名使用者存取 group-and-owner-read-
only 的檔案以及目錄。<群組名稱> 是 /etc/group 裡的一個
有效群組(或是你的 getgrent() 呼叫所查閱的地方)。
class <類別> <類型列表> <全球位址> [<全球位址> ...]
定義使用者的 <類別> ,使用 <全球位址> 格式的來源位址。
可以定義 <類別> 多個成員。可以有多個 "class" 指令列出
該類別額外的成員。如果多個 "calss" 指令可以應用到該次
的連線期間,會使用在 access 檔案中第一個列出的。嘗試為
一台主機定義一個有效的類別失敗的話將會引起存取被拒絕。
<類型列表> 是一個以任何 "anonymous", "guest" 及 "real"
關鍵字所組成使用逗點隔開的列表。如果包含 "real" 關鍵字
,該類別可以符合使用 FTP 存取真實的帳號的使用者,而如
果包含 "anonymous" 關鍵字該類別可以符合使用匿名 FTP 的
使用者。而 "guest" 關鍵字符合訪客存取帳號(參閱 "guest
group" 以取得更多資訊)
<全球位址> 可以是一個全球的領域名稱或是一個全球的數字
位址。
deny <全球位址> <訊息檔案>
永遠拒絕符合 <全球位址> 主機的存取。顯示 <訊息檔案> 。
<全球位址> 可以是 "!nameserved" 用來拒絕沒有名稱伺服器
服務中的節點的存取。
guestgroup <群組名稱> [<群組名稱> ...]
如果一個真實的(REAL)使用者是任何 <群組名稱> 的成員,該
次連線期間的設立完全如同匿名的 FTP 一般。換句話說,會
執行一次 chroot() ,而且該使用者不再被允許發出 USER 及
PASS 指令。<群組名稱> 是 /etc/group 裡的一個有效群組(
或是你的 getgrent() 呼叫所查閱的地方)。
該使用者的 home 目錄必須適當地加以設定,跟匿名 FTP 所
要做的完全一樣。在 passwd 項目裡的 home 目錄欄位被分成
兩個目錄。第一個欄位將是 chroot() 呼叫的根目錄參數。第
二個部份是相對於該根目錄的使用者 home 目錄。這兩半是以
"/./" 分隔開的。
范例:
在 /etc/passwd 裡,該真實的項目:
guest1:
:100:92:Guest
Account:/ftp/./incoming:/etc/ftponly
當 guest1 成功地簽入的時候,此 ftp 伺服器將會執行一次
chroot("/ftp") 然後接著 chdir("/incoming") 。該 guest
使用者將只能夠存取 /ftp 下的目錄結構(此目錄對 guest1
而言看起來跟用起來就像是 / 目錄),就如同一個匿名 FTP
使用者所見到的。
limit <類別> <時間> <訊息檔案>
在某 <時間> 將某 <類別> 限制為 個使用者,若使用者
的存取被拒絕則顯示 <訊息檔案> 內容。限制的檢查只在簽入
時期實行。如果多個 "limit" 指令可以應用到該次連線期間
的話,會使用第一個適合的。嘗試定義一個有效的限制失敗,
或是值為 -1 的限制,等於不設限。<時間> 使用 UUCP L.sys
檔案相同的格式。
loginfails <數字>
在 <數字> 簽入失敗後,記錄一個″重復簽入失敗 (repeated
login failures)訊息″並且終止該 FTP 連線。預設值是 5。
private
使用者簽入之後,SITE GROUP 及 SITE GPASS 指令可以用來
指定一增強存取的群組以及與之有關的密碼。如果該群組名稱
以及密碼是有效的,該使用者變成(經由 setegid())一個在
群組存取檔案 /etc/ftpgroups 中所指定群組的成員。
該群組存取檔案的格式是:
存取群組名稱:經編碼的密碼:真實群組名稱
其中的存取群組是一個隨意的(文數字+標點)字串。經編碼
的密碼是經由 crypt(3) 編碼過的密碼,與 /etc/passwd 裡
的完全一樣。真實群組名稱是 /etc/group 裡所列出有效群組
其中的一個名稱。
注意:要使這個選項能運作於匿名的 FTP 使用者,該 FTP 伺
服器必須保持使 /etc/group 永久開啟而且將群組存取檔案載
入記憶體。這意指 (1) 該 ftp 伺服器現在使一個額外的檔案
描述子(file descriptor) 開啟,以及 (2) 經由 SITE GROUP
使用者必須的密碼以及存取權利的承認在一次 FTP 連線期間
以內將會是靜態的。如果你有緊急的需求要*現在*改變存取
群組以及/或是密碼,那麽你只要砍掉(kill)所有正在執行中
的 FTP 伺服器。
資訊功能(Informational Capabilities)
banner <路徑>
作用與 message 指令類似,除了此 banner 是在使用者鍵入
使用者名稱/密碼之前顯示以外。該 <路徑> 系相對於真實的
系統根目錄,不是匿名 FTP 所使用的根目錄。
警告:這個指令的使用可以完全地防止不相容的 FTP 客戶端
程式使用該 FTP 伺服器。並非所有的客戶端都能夠處理多行
回應(multi-line responses)(這正是 banner 顯示的方式)
email <名稱>
定義 ftp 檔案處(archive)維護者的電子郵遞位址。這個字串
將會在每一次使用 %E 代換變數(magic cookie)的時候印出。
message <路徑> {<時機> {<類別> ...}}
定義一個配合 <路徑> 的檔案名稱在使用者簽入時或是在使用
切換工作目錄指令的時候 ftpd 將會顯示該檔案的內容。該項
<時機> 參數可以是 "LOGIN" 或 "CWD=<目錄>"。如果 <時機>
是 "CWD=<目錄>" 的話,<目錄> 指定將會引發該通知的新預設
目錄。
該選擇性的 <類別> 指定允許該訊息只對特殊類別的成員顯示
。可以指定超過一個類別。
在說明檔中可以有″代換變數(magic cookies)″ 這會使 ftp
伺服器以指定的文字字串取代該變數:
%T 本地時間 (form Thu Nov 15 17:12:42
1990)
%F CWD 所在分割區的剩馀空間 (kbytes)
[並非所有系統都有支援]
%C 目前的工作目錄
%E 定義在 ftpaccess 中維護者的電子郵遞位址
%R 遠端主機名稱
%L 本地主機名稱
%U 簽入時所給的使用者名稱
%M 這個類別所允許的最大使用者數目
%N 這個類別目前的使用者數目
此項 message 將只顯示一次以避免惹使用者討厭。要記得當
MESSAGEs 被一匿名的 FTP 使用者引發時,該 <路徑> 必須是
相對於匿名 FTP 目錄樹的根目錄。
readme <路徑> {<時機> {<類別>}}
定義一個配合 <路徑> 的檔案名稱在使用者簽入時或是在使用
切換工作目錄指令的時候 ftpd 將會告知使用者該檔案存在及
修改的日期。 <時機> 參數可以是 "LOGIN" 或 "CWD=<目錄>"
。若 <時機> 是 "CWD=<目錄>" 的話,<目錄> 指定將會引發
該通知的新預設目錄。此項訊息將只顯示一次以避免打擾使用
者。要記得當 README 訊息被一匿名的 FTP 使用者引發時,
該 <路徑> 必須是相對於匿名 FTP 目錄樹的根目錄。
該選擇性的 <類別> 指定允許該訊息只對特殊類別的成員顯示
。可以指定超過一個類別。
記錄功能(Logging Capabilities)
log commands <類型列表>
以使用者啟動個別的記錄指令。 <類型列表> 是一個以任何的
"anonymous", "guest" 及 "real" 關鍵字所組成使用逗點隔
開的列表。如果包含 "real" 關鍵字,將會為使用 FTP 存取
真實帳號的使用者做記錄,而如果包含 "anonymous" 關鍵字
則將會為使用匿名 FTP 的使用者做記錄。 "guest" 關鍵字
符合訪客存取帳號(參閱 "guestgroup" 以取得更多資訊)
log transfers <類型列表> <目錄>
啟動對真實的或匿名的 FTP 使用者的檔案傳輸記錄。對傳輸
到伺服器(進來)的記錄可以跟從伺服器傳輸(出去)分開來
啟動。 <類型列表> 是一個以任何的 "anonymous", "guest"
及 "real" 關鍵字所組成使用逗點隔開的列表。如果其中包含
有 "real" 關鍵字,將會為使用 FTP 存取真實帳號的使用者
做記錄,而如果包含 "anonymous" 關鍵字則將會為使用匿名
FTP 的使用者做記錄。而 "guest" 關鍵字符合訪客存取帳號
(參閱 "guestgroup" 以取得更多資訊)。 <目錄> 是一個以
任何的 "inbound" 以及 "outbound" 兩個關鍵字所組成以逗
點隔開的列表,而且將會分別引發對送往該伺服器以及從該伺
服器送出的傳輸記錄。
其它功能(Miscellaneous Capabilities)
alias <字串> <目錄>
為一個目錄定義一個別名,<字串>。可以用來加入邏輯目錄的
其它概念。
例如:
alias rfc: /pub/doc/rfc
允許使用者從任何目錄以指令 "cd rfc:" 存取 /pub/doc/rfc
。別名只應用於 cd 指令上。
cdpath <目錄>
定義 cdpath 裡的一個項目。這定義一個在改變目錄時使用的
搜尋路徑。
例如:
cdpath /pub/packages
cdpath /.aliases
允許使用者直接 cd 到任何 /pub/packages 或 /.alias 目錄
以下的目錄。該搜尋路徑系以該行出現在 ftpaccess 檔案裡
的順序定義。
如果使用者所下的指令是:
cd foo
則會以下列的順序搜尋該目錄:
./foo
一個稱為 "foo" 的別名
/pub/packages/foo
/.aliases/foo
該 cd path 只能夠配合 cd 指令使用。如果你有數量很大的
別名那麽你可能想要設立一個目錄別名鏈結到所有你希望能讓
使用者使用的區域。
compress [ ...]
tar [ ...]
為任何符合任何 的類別啟動壓縮(compress)或
包裹(tar)功能。實際的轉換(conversions)定義在外部的檔案
FTPLIB/ftpconversions 之中。
shutdown <路徑>
如果 <路徑> 所指的檔案存在,伺服器將會規律地檢查該檔案
以便得知該伺服器是否將要被停機。如果計畫一次停機,則會
通告使用者,新的連線在停機之前的一段指定的時間之後會被
拒絕且目前的連線在停機之前的一段指定的時間之後會被停止
。<路徑>指到一個結構如下的檔案:
<年> <月> <日> <時> <分> <拒絕_期間>
<拋棄_期間>
<本文>
<年> 任何 > 1970 的年份
<月> 0-11 <---- 注意!
<時> 0-23
<分> 0-59
<拒絕_期間> 以及 <拋棄_期間> 是在停機之前新的連線將會
被拒絕以及存在的連線將會被拋棄的一段格式為 HHMM 的期間
。
<本文> 跟從任何訊息(參閱 "message")的一般規則,配合
下列額外可用的代換變數:
%s 系統將要停機的時間
%r 新的連線將會被拒絕的時間
%d 目前的連線將會被拋棄的時間
所有時間的格式都是: ddd MMM DD hh:mm:ss YYYY 。在該配
置檔中只能有一個 "shutdown" 指令。
外部程式 ftpshut(8) 可以用來自動化產生這個檔案的程序。
許可功能(Permission Capabilities)
chmod <類型列表>
delete <類型列表>
overwrite <類型列表>
umask <類型列表>
允許或不允許執行指定功能的能力。依照預設值,允許所有的
使用者執行。
<類型列表> 是一個以任何 "anonymous", "guest" 及 "real"
關鍵字所組成使用逗點隔開的列表。
passwd-check ()
定義該伺服器對匿名 ftp 密碼檢查的層級與執行。
none 不執行密碼檢查。
trivial 密碼中必須包含一個 '@' 字元。
rfc822 密碼必須是一個 rfc822 相容的位址。
warn 警告該使用者,但是允許他們簽入。
enforce 警告該使用者,並且接著將之踢出。
path-filter <類型列表> <訊息> <允許的字元集>
{<不允許的正規表示式> ...}
對於屬於 <類型列表> 的使用者,path-filter 定義控制何種
檔案名稱允許或不允許的正規表示式 (regular expressions)
。可以有多個不允許的正規表示式。如果一個檔案名稱因為不
符合正規表示式的標准而無效的話,將會顯示 <訊息> 給該使
用者。例如:
path-filter anonymous /etc/pathmsg ^[-A-Za-
z0-9._]*$ ^. ^-
指定所有匿名使用者所上傳的檔案名稱只能以 A-Z, a-z, 0-9
以及 "._-" 組成而且不能以一個 "." 或是一個 "-" 開始。
如果該檔案名稱是不合法的,則將會顯示 /etc/pathmsg 給該
使用者。
upload <擁有者> <群組>
["dirs"|"nodirs"]
配合 定義一個認可或拒絕上傳的目錄。
如果其認可上傳,所有檔案將會由 <擁有者> 以及 <群組> 所
擁有而且將會具有根據 設置的權限(permission)。
目錄系以最佳-符合(best-match)為基礎。
例如:
upload * no
upload /incoming yes ftp daemon 0666
upload /incoming/gifs yes jlc guest 0600
nodirs
這將僅允許上傳到 /incoming 以及 /incoming/gifs。上傳到
/incoming 的檔案將由 ftp/daemon 所擁有並且具有 0666 的
權限。上傳到 /incoming/gifs 的檔案將由 jlc/guest 擁有
並且具有 0600 的權限。
選擇性的 "dir" 以及 "nodir" 關鍵字可以指定允許或不允許
使用 mkdir 指令建立新的子目錄。
該 upload 關鍵字只應用於匿名的使用者。
檔案
FTPLIB/ftpaccess
參閱