配置“/etc/ftpaccess”文件
“/etc/ftpaccess”文件是用來配置“ftpd”的。這個文件主要是設置允許哪個用戶、多少用戶訪問ftp服務器,以及一些安全方面的問題。配置文件的每一行或者定義一個屬性或者設定一個屬性值,。對於非匿名的“chroot”訪問,必須創建一些“guestgroup”,每一個都要對應“/home/ftp/etc/group”文件中的項。
創建ftpaccess文件(touch /etc/ftpaccess),在文件中加入:
class openarch guest 208.164.186.*
limit openarch 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg
email
[email protected] loginfails 3
readme README* login
readme README* cwd=*
message /home/ftp/.welcome.msg login
message .message cwd=*
compress yes all
tar yes all
chmod yes guest
delete yes guest
overwrite yes guest
rename yes guest
log commands real,guest
log transfers real,guest inbound,outbound
guestgroup ftpadmin
guestgroup webmaster
# We don‘t want users being able to upload into these areas.
upload /home/ftp/* / no
upload /home/ftp/* /etc no
upload /home/ftp/* /dev no
# We‘ll prevent downloads with noretrieve.
noretrieve /home/ftp/etc
noretrieve /home/ftp/dev
log security real,guest
guest-root /home/ftp ftpadmin webmaster
restricted-uid ftpadmin webmaster
restricted-gid ftpadmin webmaster
greeting terse
Keepalive yes
noretrieve .notar
現在把文件的權限設成600:
[root@deep]# chmod 600 /etc/ftpaccess
下面解釋配置文件中的設置:
class
“class”用來定義一個允許訪問ftp服務器的用戶類別。可以定義任意多的類別(class)。每一個“class”行的格式如下:
class <classname> <typelist> <addrglob>
<classname>是class的名字,<typelist>是允許加到類別(class)中的用戶類型,<addrglob>是這個class允許的IP地址范圍。
<typelist>中的項是用逗號隔開的,每一個項有三種可能的取值:anonymous、guest或real。anonymous用戶是用anonymous或ftp帳號訪問ftp服務器而且只需要訪問公用文件的那些用戶。guest用戶有一些特殊因為他們在系統中沒有帳號,但是卻又是guest組的成員。real用戶必須在FTP服務器上有帳號,而且需要經過服務器的安全驗證。
<addrglob>可以用通配符,例如:“*”表示所有的站點。下面這一行:
class openarch guest 208.164.186.*
表示只有在系統中有自己帳號的guest用戶而且IP地址為“208.164.186.*”才能訪問ftp服務器。
limit
“limit”根據class和時間范圍來限制登錄ftp服務器的用戶數。“limit”的格式是:
limit <class> <n> <times> <message_file>
其中<class>是受限制的類別(class),<n>表示在這個類別中受到限制的最多用戶數,<times>表示“limit”有效的時間段,<message_file>是當達到最大的用戶數目的時候,別的用戶還想登錄時顯示的信息。
<times>中的字符串用逗號隔開,每一個字串表示一天。星期一到星期日分別用Mo、Tu、We、Th、Fr、Sa和Su表示,周末也可以用Wk表示。表示時間的小時和分鐘之間不要用冒號隔開。“-”用來表示范圍。
例如,限制“openarch”這個類別,最多可以有20個用戶,訪問時間是星期一道星期四全天,星期五從半夜到下午六點。用下面這一行來表示: limit openarch 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg
如果一旦達到最大的用戶數,還有別的用戶想連接ftp服務器,就會把“/home/ftp/.too_mang.msg”中的信息傳給用戶。
loginfails
“loginfails”設置最多允許的登錄失敗的次數。可以用下面這一行來表示:
loginfails <n>
<n>表示最多允許的登錄失敗的次數。例如,只允許失敗兩次可以這樣表示:
loginfails 3
readme
“readme”設置在什麼條件下,一旦當前目錄中的文件發生了變化需要提醒用戶。
這個命令的格式為:
readme <path> <when>
<path>是用來提醒用戶的文件的名字(例如:README),<when>設置出現這個提示信息的條件。
<when>可以為下面兩種形式:LOGIN或CWD=<dir>。如果為LOGIN,當用戶成功登錄的時候就會出現提示信息。如果為CWD=<dir>,當用戶進入<dir>目錄的時候就會有提示信息。
請記住當給匿名(anonymous)用戶設置提示信息的路徑的時候,這個路徑必須是相對於匿名ftp目錄。