1. linux系統的機子作伺服器怎麼配置啊源文件在哪兒存的啊
http://www.chinaunix.net/
這里比較多.
案例一:
用LINUX架設FTP伺服器
http://www.chinaunix.net 作者:level 發表於:2004-02-27 13:35:50
以前自己弄的東西,現在帖出來,希望對大家有點用:)
1.1 什麼是FTP:文件傳輸協議原理
1.1.1 命令選擇
1.1.2 命令格式
1.2 wu-Ftpd的安裝
1.3 讓FTP伺服器運轉起來
1.4 配置文件的設置
1.4.1 /etc/ftpaccess的設置
1.4.2 /etc/ftpusers和/etc/ftphosts的設置
1.4.3 /etc/ftpconversions設置
1.4.1 wu-ftp的相關程序
1.5 開設只能FTP的帳戶
1.6 設置虛擬FTP主機
什麼是FTP:文件傳輸協議原理
互聯網文件傳輸協議(File Transfer Protocol ,FTP) 標準是在RFC959說明的。該協議定義了一個從遠程計算機系統和本地計算機系統之間傳輸文件的一個標准。一般來說,傳輸文件的用戶需要先經過認證以後才能登錄網站,然後方能訪問在遠程伺服器的文件。而大多數的FTP伺服器往往提供一個GUEST的公共帳戶來允許沒有遠程伺服器的用戶可以訪問該FTP伺服器。
一個FTP會話通常包括五個軟體元素的交互。
用戶介面 提供了一個用戶介面並使用客戶端協議解釋器的服務
客戶 PI 客戶協議解釋器,其項遠程伺服器協議機發送命令並且驅動客戶數據傳輸過程
伺服器PI 伺服器協議解釋器,響應客戶協議機發出的命令並驅動伺服器端數據傳輸過程
客戶 DTP 客戶數據傳輸過程,其負責完成和伺服器數據傳輸過程及客戶端本地文件系統的通信
服務DTP 伺服器數據傳輸過程,其負責完成和客戶數據傳輸過程及伺服器端文件系統的通信
在RFC 959中,一般使用用戶這個名詞來指代客戶。RFC 959定義了客戶PI和伺服器PI交互的方式和規范。用戶介面與PI和DTP交互的機理都並不是協議標準的一部分。PI和DTP往往通常是在同一個程序模塊中實現的。
在FTP會話中,一共會存在有兩個獨立的網路連接,一個是由兩端的PI使用的,另一個是由兩端的DTP使用的。PI之間的連接一般被稱作控制連接(control connection),DTP之間的連接被稱做數據連接(data connection)
使用TCP服務的控制和數據連接
通常情況下,FTO伺服器監聽埠號21來等待控制連接建立請求。而數據連接埠號的選擇依賴於控制連接上命令。通常是客戶發送一個控制消息來指定客戶監聽並等待伺服器端發送數據連接建立請求的埠號。
對數據傳輸和控制命令傳輸來使用不同的獨立連接有如下優點:兩個連接可以選擇不同的合適服務質量,如:對控制連接來說高需要更小的延遲時間,對數據連接來說需要更大的數據吞吐量;而且可以避免實現數據流中的命令的通明性及逃逸。
當傳輸建立時,總是由客戶端首先發起。然而客戶和伺服器都可能是數據發送者。除了傳輸用戶請求下載文件,數據傳輸過程同樣在客戶端請求列伺服器端目錄結構時建立。
1.1.1 命令選擇
當一個傳輸建立時,一般通常需要指定四個方面的屬性:
文件類型
該屬性指定如何將文件的數據匹配成適於傳輸的格式,一共有四種可能的選擇:
ASCII文件類型
在發送端,文件從本地文本文件格式轉換為 NVT ASCII格式,每行結束有一個CR/LF對來標識。 在接收端,再被轉換為本地的文本格式。
這說明了為什麼Unix主機之間傳輸文本文件為何傳輸的數據量要大於文件的實際大小。若傳輸一段端或傳輸兩端都不使用ASCII文本編碼,則是應該由數據傳輸過程來實現本地編碼和NVT ASCII 編碼之間的轉換。
EBCDIC文件類型
類似於ASCII,區別僅僅上使用EBCDIC字元編碼
圖象 (或二進制)文件類型
文件以本地傳輸內容傳輸,在遠端以同本地完全相同的內容存儲。
本地文件系統
用在位元組大小不是8位的環境下。沒位元組位數由發送者指定。
在實際應用中,只有ASCII和圖象格式使用的較多。
格式控制
該屬性是和將文本文件最後傳送到列印設備相關的,其中有多種方式來實現將垂直格式信息編碼到文件中,包括指示一個新頁開始的方式。有如下方式可供選擇:
無須列印格式控制,這是預設值
Telnet列印控制,在telnet協議中定義的控制字元包含在數據流中。.
Fortran列印控制,
該屬性在實際中很少使用。
結構
文件可以擁有內部結構,在傳輸中該結構被保留。由數據傳輸過程來負責在傳輸中的結構及本地結構之間相互匹配,有三種可能性:
文件結構
這實際上意味著文件被看作沒有內部結構的連續的位元組流。
記錄結構
文件是有一系列記錄組成的結構。這只適用於文本文件。
頁面結構
也可以稱做塊結構。每一頁都伴隨一個頁號來傳輸,從而以順序的方式來完成傳輸。
頁面結構很少在實際中遇到。記錄結構也不是很常見。對於文本文件使用ASCII文件類型可以獲得相同的效果。
傳輸模式
該屬性可以取三個不同的值:
流模式
文件的以位元組流的方式傳輸。
塊模式
文件以一個塊連接一個塊的方式傳輸,每個塊的開頭都有一個頭。
壓縮模式
一個簡單的運程長度壓縮編碼被應用,來壓縮連續的相同的位元組。
實際中,一般只有流模式被使用。而壓縮一般通過使用各種其他的工具程序來獲得。
當一次傳輸被建立,客戶端一般指定一個或多個前面說明的屬性。若伺服器端不能支持某個選項,伺服器將用一個錯誤信息來響應客戶端,並不具有協商機制。
FTP提供了充足的命令來使用戶和遠程建立連接並訪問遠程文件系統。
1.1.2 命令格式
命令以NVT ASCII串的格式被傳輸。每個命令以三個或四個大寫的NVT ASCII字元開始,後面帶有選項參數和一個CR/LF對來標識命令結束
應答由三個NVT ASCII數字及一個選項消息組成。
一個長的應答也許會有多個消息組成,第一個消息的三個數字後帶有一個破折號,最後的消息不帶有破折號。中間的消息無須攜帶三個數字,但是如果帶了三個數字,則也需要破折號。
下面是所有的命令的列表。帶有星號的命令一般很少使用,所以往往在具體實現中不支持。
String Meaning
ABOR 放棄傳輸
*ACCT 某些系統將帳號和用戶與文件系統相關聯
*ALLO 為即將傳送的文件分配空間。後面攜帶的參數來確定位元組數
*APPE 將文件附加到已經存在的文件後面
CDUP 在遠程系統上將當前目錄切換到上級父目錄
CWD 改變遠程系統的工作目錄
DELE 刪除遠程系統的文件
HELP 讀取伺服器的幫助信息,如:支持的命令的列表
LIST 在一個新建立的數據連接上發送當前工作目錄下的文件名列表
MKD 創建目錄
MODE 指定傳輸模式,可攜帶的參數是:S、B或 C.
NLST 在一個新建立的數據連接上發送一個當前目錄下的「完全」的目錄列表
NOOP 空操作,防止連接斷掉
PASS 提供一個用戶登錄密碼,必須立即跟隨在USER命令後
*PASV 指定伺服器數據傳輸過程監聽等待客戶端的數據連接連接建立請求
PORT 指定客戶端監聽等待伺服器端建立的連接的埠號
PWD 顯示伺服器端的當前工作目錄名
QUIT 退出登錄並終止連接
*REIN 重新初始化,退出登錄但是並不斷開連接,後面必須隨後發出一個新的USER命令
*REST 從伺服器的一個標識處重新開始傳輸
RETR 從遠程系統取回一個文件
RMD 刪除一個目錄
*RNFR 指定要被命名的文件的老的路徑名,隨後必須是一個RNTO命令
*RNTO 指定要被命名的文件的新的路徑名
*SITE 站點特有的伺服器提供的服務
*SMNT 結構載入,提供一個文件系統結構的遠程系統路徑名
*STAT 狀態信息
STOR 上載一個文件到伺服器上,若文件已經存在則覆蓋
*STOU 上載一個文件到伺服器上,不覆蓋已經存在的文件
STRU 指定文件結構,參數可以是F、R或P.
*SYST 報告遠程系統的操作系統類型
TYPE 指定文件類型,參數可以是A、E、I、L只有TYPE A和TYPE I常用
控制連接命令應答有如下形式:
Type Description
1yz 主動初步應答,在發送另一個命令以前等待另一個應答
2yz 主動最後應答,最後一個命令成功結束
3yz 主動中間應答,必須再發送一個命令
4yz 暫時被動應答,要求的動作當時不能完成,但可以重試
5yz 永久被動應答,要求的動作不能完成,不應該重試
"y"數字編碼進一步的信息
Digit Meaning
0 語法錯誤
1 信息
2 連接狀態
3 認證和記帳
4 保留
5 File s文件系統狀態
下面是一些典型的消息:
Number Meaning
125 數據連接打開,傳輸開始
200 命令OK
331 用戶名OK 需要輸入密碼
425 不能打開數據連接
452 錯誤寫文件
500 語法錯誤-不可識別的命
具體的詳細情況可以參見RFC
wu-Ftpd的官方權威站點地址是:http://www.wu-ftpd.org/。
1.2 wu-Ftpd的安裝
當前,Linux環境下有許多ftp伺服器軟體可供選擇,但是目前最常見的仍然是wu-Ftpd伺服器。這里主要討論該軟體的安裝和配置。
一般來說,在安裝了linux時,預設都會自動安裝wu-ftpd伺服器,但是有時候為了某種需要也需要自己親自重新安裝該伺服器軟體。安裝wu-Ftpd有兩方式,一種是安裝rpm形式的發布包;一種是自己動手去編譯生成Ftp伺服器。
rpm包可以在http://rpmfind.net/linux/RPM/WByName.html處下載得到,以rpm包方式安裝非常簡單,只需要在按下面的簡單的幾個步驟就可以完成,假設下載得到的rpm包存放在/tmp目錄下:
#cd /tmp
#rpm -ivh wu-ftpd-1.6.0-9.i386.rpm
壓縮的源代碼可以在ftp://ftp.wu-ftpd.org/pub/wu-ftpd/出得到。這里我們以最新的1.6.0為例說明如何編譯安裝wu-ftpd。
1、解開源代碼
1) 將壓縮的源代碼拷貝到/usr/src下
#cp wu-ftpd.1.6.0.tar.gz /usr/src
2) 對壓縮文檔進行解壓縮:
#tar xvfz wu-ftpd.1.6.0.tar.gz
#cd wu-ftpd-1.6.0
2、敲入命令 "./build xxx" ,可以在這里指定一個C語言編譯器:"./build CC=yyy xxx" yyy 指用來替代 "cc" 的其他的編譯器。對於linux環境下的gcc編譯器,命令應該為:"./build CC=gcc xxx"
#build CC=gcc lnx
xxx可以取下面的值:
gen : 通用make(當移植到心得系統時需要拷貝它)
aix : IBM AIX
aux : AU/X
bdi : BSD/OS
bsd : BSD
dec : DEC Unix 3.X
4 : DEC Unix 4.X or later
dyn : Dynix
fbs : FreeBSD 1.0 or later
hiu : Hitachi Unix
hpx : HP-UX
lnx : Linux (tested on 1.0.30)
nbs : NetBSD 1.X
nx2 : NeXTstep 1.x
nx3 : NeXTstep 3.x
osf : OSF/1
osx : Mac OS X
ptx : ???
sco : SCO Unix 3.2v4.2/SCO OpenServer 5
sgi : SGI Irix 4.0.5a
sny : Sony NewsOS
sol : SunOS 5.x / Solaris 1.x
s41 : SunOS 4.1.x
ult : Ultrix 4.x
uxw : UnixWare 1.1 or later
clean : Clean up object files and such to rece disk space after building.
install: Install ftpd
Copying Makefiles.
Linking src/config.h
Making support library.
gcc -O3 -fomit-frame-pointer -fno-strength-rece -pipe -c strcasestr.c
gcc -O3 -fomit-frame-pointer -fno-strength-rece -pipe -c authuser.c
gcc -O3 -fomit-frame-pointer -fno-strength-rece -pipe -c snprintf.c
rm -f libsupport.a
ar cq libsupport.a strcasestr.o authuser.o snprintf.o
ranlib libsupport.a
: : :
: : :
: : :
編譯成功以後將生成如下幾個可執行文件:
ftpd FTP伺服器程序
ftpshut 用於關閉FTP守護進程的程序
ftpcount 記數程序,顯示目前ftp登錄的人數
ftpwho 查看當前FTP伺服器的連線情況,類似與系統的who命令,只不過是查看ftp登錄的用戶
ckconfig 檢查FTP的設置是否正確
ftprestart 重新啟動ftp伺服器
privatepw 改變wu_ftpd組訪問文件信息
3、若只是升級到一個新的版本,應該首先備份系統所有的舊的配置文件。否則這些配置文件將被覆蓋。為了適應自己的需求,應當編輯樣本配置文件來滿足自己的要求,具體配置文件的需求參見後面的內容。
4、以超級用戶身份敲入命令"./build install"
#build install
installing binaries.
install -c -o bin -g bin -m 110 bin/ftpd /usr/sbin/in.ftpd
install -c -o bin -g bin -m 111 bin/ftpshut /usr/bin/ftpshut
install -c -o bin -g bin -m 111 bin/ftprestart /usr/bin/ftprestart
install -c -o bin -g bin -m 111 bin/ftpcount /usr/bin/ftpcount
install -c -o bin -g bin -m 111 bin/ftpwho /usr/bin/ftpwho
install -c -o bin -g bin -m 111 bin/privatepw /usr/bin/privatepw
installing manpages.
install -c -o bin -g bin -m 444 doc/ftpcount.1 /usr/man/man1/ftpcount.1
install -c -o bin -g bin -m 444 doc/ftpwho.1 /usr/man/man1/ftpwho.1
install -c -o bin -g bin -m 444 doc/ftpaccess.5 /usr/man/man5/ftpaccess.5
install -c -o bin -g bin -m 444 doc/ftpconversions.5 /usr/man/man5/ftpconversio5
install -c -o bin -g bin -m 444 doc/ftphosts.5 /usr/man/man5/ftphosts.5
install -c -o bin -g bin -m 444 doc/xferlog.5 /usr/man/man5/xferlog.5
install -c -o bin -g bin -m 444 doc/ftpd.8 /usr/man/man8/ftpd.8
5、編輯 "/etc/inetd.conf" 文件,指向新的ftpd守護進程,大多數情況下,這一步是不必的,因為在build install時,會將新的守護進程拷貝覆蓋老的守護進程。若希望使用ftpd的增強的擴展功能,應該在這行最後加上"-a"選項。
ftpd守護進程一般可以攜帶如下參數,也可以不帶任何參數:
-d debug參數,當ftpd守護進程出現錯誤時,會將錯誤信息寫入到系統記錄文件/usr/adm/syslog中
-l 記錄每次ftp會話信息到/usr/adm/messages中
-t 設置當FTP客戶端多久無操作就自動斷線,這個參數後面指定等待的時間,如 -t 600 表示若客戶
端若連續10分鍾沒有動作就自動斷線,預設值是15分鍾
-a 使用ftpaccess配置文件內容對ftpd進行更詳細復雜的設置
-A 不使用ftpaccess配置文件的設置,預設值是-A
-i 當客戶端有上載文件的動作時,就記錄在文件xferlog中
-L 使用戶連接ftp伺服器期間使用的所有命令都被記錄到/usr/adm/messages中
6、拷貝tar、gzip、gunzip、compress、uncompress等文件到 "~ftp/bin"中,拷貝"ls"為"~ftp/bin/ls"。
7、若是第一次安裝,使用"ckconfig"程序查找ftpd的各種配置文件存放目錄:ftpconversions、ftpusers、 和ftpgroups。在"doc/examples"目錄下有樣本文件。"ckconfig"是一個可執行程序,確保修復該程序檢測到的任何問題。
1.3 讓FTP伺服器運轉起來
一般來說,只要正確地編譯安裝了wu-ftpd,該伺服器就可以正常運行。用戶可以通過FTP命令從各種系統上連接該伺服器。
1.4 配置文件的設置
1.4.1 /etc/ftpaccess的設置
這個配置文件是FTP伺服器最重要的配置文件,這個文件的設置決定了FTP是否可以正常工作及許多訪問許可權的設置。如下面的例子所示:
class all real,guest,anonymous *
limit all 10 Any /etc/msgs/msg.dead
readme README* login
readme README* cwd=*
message /welcome.msg login
message .message cwd=*
compress yes all
tar yes all
log commands real
log transfers anonymous,real inbound,outbound
shutdown /etc/shutmsg
email user@hostname
下面是設置文件各個指示(directive)的詳細說明:
指示: loginfails n
密碼輸入n次就自動斷開連接
指示:autogroup 組名 類別 [ ...]
若一個匿名用戶屬於任何一個參數類別的類,則FTP伺服器將實施setegid()調用使其屬於這個組名定義的組,這樣做是為了實現某些特定類別的匿名用戶可以訪問一些只允許本組及擁有者可以訪問的文件。組名必須是/etc/group內定義的有效組。
指示: class 類名 類別(real、guest、anonumous) IP地址
這個指示是設定FTP伺服器用戶的類別。
FTP伺服器的用戶可以分為以下三種類別:
real 在該FTP伺服器上擁有合法帳戶的用戶;
guest 另外定義某些特定組的用戶;
anonymous 匿名用戶;
舉例說明:
class outworld real,guest,anonymous *
定義一個名為outworld的類,該類包含三種類型的用戶:real,guest,anonymous。該類在後面的指示中使用。其中"*"是類定義中的IP地址部分,表示網路上的所用主機。也就是說明允許任何主機連接FTP伺服器。若希望對訪問FTP的主機進行一定的許可權設置,可以這樣做:
class friend real,guest,anonymous *.linuxaid.com.cn 201.101.13.*
指定義一個friend類,該類從*.linuxaid.com.cn 及201.101.13.*訪問FTP伺服器時有特定的許可權設定。
指示: limit 類別 人數 時間 文件名
該指示設定在某個類在某個時間內允許連接FTP伺服器的人數的限制,並指定當連接人數超過限制,後面的用戶連接時顯示給用戶的消息信息。
舉例說明:
limit local 20 Any /tmp/message/msg.toomany
上面的例子限定local這個類中的擁護同一時間只能有20人同時上網連接這台FTP伺服器,若超過20人則顯示/tmp/message/msg.toomany的文件的內容
limit outworld 100 MoTu|Any 2200-0800 /tmp/message/msg.limit
這個例子限制outworld這個類的用戶只能在周一周二或每天的晚上10點到第二天早上的8點之間訪問該FTP伺服器,而且同時連線的人數不可以超過100人,若超過100人,則顯示/tmp/message/msg.limit的文件的內容
/tmp/message/msg.limit的內容為:
對不起!本伺服器只允許匿名用戶在周一周二全天及其他每天晚上10點到第二天早上的8點之間訪問,當前時間為%T;而且只允許同時有%M個匿名用戶訪問,當前有%N個用戶在訪問該伺服器。請在合適的時間訪問本FTP伺服器,謝謝!
這里的%M是一個變數,代表同時允許連接的人數的上限,FTP伺服器可以用前面設置的值自動替代該變數,其他允許的變數包括:
%T 本地當前時間;
%F CWD所在分區剩餘空間,以KB為單位。但該變數不是所有系統都支持。
%C 當前工作目錄;
%E 定義在/etc/ftpaccess文件中的系統管理員的E-mail地址;
%R 遠端主機名;
%L 本地主機名;
%U 登錄時所給的用戶名;
%N 這個類別當前連接的用戶數目;
利用這些參數,可以編輯一個詳細的說明文件,這樣可以讓用戶清楚當前伺服器資源使用情況。
指示: readme 說明文件 指令
當用戶執行指定的"指令"時,系統就會自動顯示所設置的說明文件;
舉例說明:
readme README* login
當用戶執行登錄動作時,只要以README開頭的文件內容就會顯示給用戶。
readme README* cwd=*
表示用戶切換目錄時(cwd),只要以README開頭的文件內容就會顯示給用戶。
通常README*應該是該目錄下文件的說明,讓登錄的用戶可以清楚地知道目錄中存放了那些文件;
指示: message 文件名 指令
使當用戶執行特定的"指令"時,系統就將指定的文件內容顯示給用戶;
舉例說明:
message /msg.welcome login
指定當用戶登錄時,將自動顯示/tmp/message/msg.welcome的內容給用戶,注意這里的/msg.welcome指ftp根目錄下的msg.welcome文件,即/home/ftp/msg.welcome。
message /welcome cwd=*
指定當用戶切換另一個目錄時,只要目錄中有msg.welcome文件,就顯示給用戶
指示: compress (yes/no) 類別
設置哪個類別的用戶可以使用壓縮功能;
舉例: compress yes local outworld
允許local 和outworld兩個類別的 用戶使用壓縮功能
指示: tar (yes/no) 類別
指定哪個類別的用戶可以使用tar功能;
指示: passwd-check (none/trivial/rfc822) (enforce/warn)
設定當用戶以匿名方式登錄伺服器時密碼的方式:
none 表示不對密碼進行驗證,任何密碼都可以登錄;
trival 表示只要密碼中包含@就可以登錄;
rfc822 表示密碼一定要符合rfc822中規定的E-mail格式才能登錄。如:[email protected]
enforce 表示輸入的密碼不符合指定格式就不允許登錄;
warn 表示輸入的密碼不符合指定格式顯示警告信息,但仍然允許登錄;
指示: log commands 類別(read/guest/anonumous)
設定那些用戶登錄時,所使用的操作會被記錄在文件/usr/adm/xferlog中。
指示: log transfer 類別(read/guest/anonumous) (inbound/outbound)
設定指定的用戶類別在上載還是下載時的相關信息被記錄到/usr/adm/xferlog中。
舉例說明:
log transfer anonymous,real inbound,outbound
當anonymous或real用戶登錄後,上載和下載的操作會被記錄在文件/usr/adm/xferlog中。
指示: shutdown 文件名
FTP伺服器關閉的時間可以後面的文件名中指定的文件中指定,設定的時間一到,便無法登錄FTP伺服器了,只有將這個文件刪除才能恢復FTP伺服器。文件的格式可以由命令ftpshut來建立。
指示: delete (yes/no) 類別(real/anonymous/guest)
設定是否允許指定用戶使用delete命令。
舉例說明:
delete no guest,anonymous
設定大概內登錄的用戶為guest或anonymous上不允許執行delete命令。
指示: overwrite (yes/no) 類別(real/anonymous/guest)
設定是否允許指定用戶使用overwrite指令。
指示: reame (yes/no) 類別(real/anonymous/guest)
設定是否允許指定用戶使用readme指令。
指示: chmod (yes/no) 類別(real/anonymous/guest)
設定是否允許指定用戶使用chmod指令。
指示: umask (yes/no) 類別(real/anonymous/guest)
設定是否允許指定用戶使用umask指令。
指示: upload [absolute|relative] [class=]... [-]
["dirs"|"nodirs"] []
定義允許用來上載的目錄。若允許上載,所有新上載的文件的所有者及組由和定義 ,訪問許可權將為。對於覆蓋老文件的上載文件將保持原來的所有者及訪問許可權信息。文件上載的許可權信息由最大匹配目錄項定義,如:
upload /var/ftp * no
upload /var/ftp /incoming yes ftp daemon 0666
upload /var/ftp /incoming/gifs yes jlc guest 0600 nodirs
would only allow uploads into /incoming and /incom-
:
將只允許/incoming和/incom-ing/gifs目錄上載。上載到/incoming目錄下的文件將屬於ftp/daemon,訪問許可權為0666;而上載到/incoming/gifs下的文件將屬於jlc/guest,訪問許可權為0600。應該注意的是 必須匹配"ftp"用戶的passwd文件中的主目錄。
"dirs"和"nodirs"選項用來設定是否允許在該目錄下創建新的子目錄。但是預設是允許創建子目錄的。
設定新創建的目錄的訪問許可權,預設為0777。
上載指示只能施用於用戶主目錄(chroot()的參數)等同於的用戶,可以為*來表示匹配任何主目錄。
和也可能指定為*,在這種情況下,任何上載的文件或創建的目錄的所有者都等於起父目錄的所有者。
選項[absolute|relative]指定是是絕對路徑還是相對於chroot()參數指定的目錄的相對路徑。預設是絕對路徑。也可以指定任意多個class='來進行進一步限定。若指定了任何目錄,則該上載指示隻影響這些組的用戶。
指示: alias 目錄別名 目錄路徑
給指定目錄設置一個別名,當切換目錄時可以使用別名。
舉例說明:
alias xwin /pub/linux/xwindows
為/pub/linux/xwindows設置別名xwin,登錄以後只要輸入命令cd xwin就可以進入該目錄。
指示: cdpath 目錄
該功能和系統的PATH環境變數設置類似,當cd /etc時,FTP首先查看當前目錄下是否有etc子目錄,無則看是否有別名,若沒有則根據該指示設定的路徑查詢。
舉例說明:
cdpath /pub/linux
cdpath /pub
cdpath /
搜索順序為:/pub/linux /pub /
指示: path-filter 類別(real/anonymous/guest) 目錄
設定上載文件名限制。
舉例說明:
path-filter anonymous /etc/pathmsg^[-A-Za-z0-9_\.]*$^\.^-
path-filter guest /etc/pathmsg^[-A-Za-z0-9_\.]*$^\.^-
設置限制anonymous和guest用戶上載的文件名只能包含A-Z、a-z、0-9和._-,名字以"."和"-"開頭的文件不能上載到伺服器上。
指示: guestgroup [ ...]
guestuser [ ...]
realgroup [ ...]
realuser [ ...]
對於guestgroup指示,若一個真實(real)用戶屬於任何一個所指定的組,則其FTP會話都被FTP伺服器以匿名的方式進行處理。也就是說,chroot()被調用,用戶不再允許發出USER和 PASS 命令。必須是有效的組。
這里用戶的home目錄必須被爭取的設置,要確實和匿名用戶一致,/etc/passwd中的相關項的home目錄被分割為兩個部分,第一部分是chroot()調用的根目錄參數,第二個是用戶相對於根目錄的主目錄,兩部分之間以"/./分隔",如:
guest1::100:92:Guest Account:/ftp/./incoming:/etc/ftponly
當guest1成功登錄進入,FTP伺服器將調用chroot("/ftp")然後調用chdir("/incoming")。則guest1就如同匿名用
2. 為什麼要用Linux做伺服器
Linux伺服器優勢1:良好的穩定性
Linux內核的源代碼是以標准規范的32位(在64位CPU上是64位)的計算機來做的最佳化設計,可確保其系統的穩定性。正因為Linux的穩定,才使得一些安裝Linux的主機像Unix機一樣常年不關而不曾宕機。
Linux伺服器優勢2:豐富的軟體支持
與其他的操作系統不同的是,安裝了Linux系統後,用戶常用的一些辦公軟體、圖形處理工具、多媒體播放軟體和網路工具等都已無需安裝。而對於程序開發人員來說,Linux更是一個很好的操作平台,在Linux的軟體包中,包含了多種程序語言與開發工具,如gcc、cc、C++、Tcl/Tk、Perl、Fortran77等。
Linux伺服器優勢3:可靠的安全性
Linux系統是一個具有先天病毒免疫能力的操作系統,很少受到病毒攻擊。
對於一個開放式系統而言,在方便用戶的同時,很可能存在安全隱患。不過,利用Linux自帶防火牆、入侵檢測和安全認證等工具,及時修補系統的漏洞,就能大大提高Linux系統的安全性,讓黑客們無機可乘。
Linux伺服器優勢4:完善的網路功能
Linux內置了很豐富的免費網路伺服器軟體、資料庫和網頁的開發工具,如Apache、Sendmail、VSFtp、SSH、MySQL、PHP和JSP等。近年來,越來越多的企業看到了Linux的這些強大的功能,利用Linux擔任全方位的網路伺服器。
Linux伺服器優勢5:多用戶多任務
和Unix系統一樣,Linux系統是一個真正的多用戶多任務的操作系統。多個用戶可以各自擁有和使用系統資源,即每個用戶對自己的資源(例如:文件、設備)有特定的許可權,互不影響,同時多個用戶可以在同一時間以網路聯機的方式使用計算機系統。多任務是現代計算機的最主要的一個特點,由於Linux系統調度每一個進程是平等地訪問處理器的,所以它能同時執行多個程序,而且各個程序的運行是互相獨立的。
Linux伺服器優勢6:跨平台的硬體支持
由於Linux的內核大部分是用C語言編寫的,並採用了可移植的Unix標准應用程序介面,所以它支持如i386、Alpha、AMD和Sparc等系統平台,以及從個人電腦到大型主機,甚至包括嵌入式系統在內的各種硬體設備。 如需詳細了解Linux請看《Linux就該這么學》。
3. linux 文件伺服器怎麼搭建
在前面一個章節學習的FTP文件傳輸服務確確實實讓咱們在主機之間傳輸文件變得非常方便,但FTP協議的本質是傳輸文件,並不是共享文件,要想讓客戶端能夠直接在服務端上面修改文件內容還是比較麻煩的事情。於是在1987年時,由微軟和英特爾公司共同制訂了SMB伺服器通信協議(Server MessagesBlock),這項技術的誕生是為了解決區域網內的文件或列印機等資源的共享服務問題,讓多個主機之間共享文件變成越來越簡單。
後來到了1991年,當年還在讀大學的學生Tridgwell為了解決Linux與Windows系統之間的文件共享問題,便基於了這項SMB技術協議開發出了SMBserver這一款服務程序,SMBserver服務程序是一款基於SMB協議並由服務端和客戶端組成的開源文件共享軟體,通過非常簡單的配置就能夠實現Linux系統與Windows系統之間的文件共享工作。當時還在上學的Tridgwell想要把這款SMBServer軟體注冊成為商標,但卻被商標局以SMB是沒有意義的字元而拒絕了他的申請,經過Tridgwell不斷的翻看詞典,突然看到一個拉丁舞蹈的名字——SAMBA,如圖12-1所示,這個熱情洋溢的舞蹈名字中又恰好包含了SMB(SAMBA),於是這便是Samba服務程序名字的由來,現在已經成為了Linux系統與Windows系統之間共享文件的最佳選擇。
Samba服務程序的配置方法跟咱們以前學習過的服務很相似,首先咱們需要先通過yum軟體倉庫來安裝samba服務程序,這款軟體也恰巧是軟體包的名字,很好記吧~:
java">[root@linuxprobe~]#yuminstallsamba
Loadedplugins:langpacks,proct-id,subscription-manager
………………省略部分輸出信息………………
Installing:
sambax86_644.1.1-31.el7rhel527k
TransactionSummary
================================================================================
Install1Package
Totaldownloadsize:527k
Installedsize:1.5M
Isthisok[y/d/N]:y
Downloadingpackages:
Runningtransactioncheck
Runningtransactiontest
Transactiontestsucceeded
Runningtransaction
Installing:samba-4.1.1-31.el7.x86_641/1
Verifying:samba-4.1.1-31.el7.x86_641/1
Installed:
samba.x86_640:4.1.1-31.el7
Complete!
安裝後打開Samba服務程序的主配置後發現竟然有320行呢!有沒有被嚇到?但仔細一看發現其實大多都是以#(井號)開頭的注釋信息行,既然您手中已經擁有了劉遄老師的經驗之書,就肯定不會讓您去「死啃」這些東東的~:
[root@linuxprobe ~]# cat /etc/samba/smb.conf
# This is the main Samba configuration file. For detailed information about the
# options listed here, refer to the smb.conf(5) manual page. Samba has a huge
# number of configurable options, most of which are not shown in this example.
#
# The Official Samba 3.2.x HOWTO and Reference Guide contains step-by-step
# guides for installing, configuring, and using Samba:
# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
#
# The Samba-3 by Example guide has working examples for smb.conf. This guide is
# generated daily: http://www.samba.org/samba/docs/Samba-Guide.pdf
#
# In this file, lines starting with a semicolon (;) or a hash (#) are
# comments and are ignored. This file uses hashes to denote commentary and
# semicolons for parts of the file you may wish to configure.
#
# Note: Run the "testparm" command after modifying this file to check for basic
# syntax errors.
#linuxprobe.com
………………省略部分輸出信息………………
由於這次配置文件中的注釋信息行實在太多,不便於分析裡面的重要參數,因此咱們可以先將配置文件改個名字,然後使用cat命令讀入主配置文件內容後通過grep命令-v參數(反向選擇)分別去掉所有以#(井號)和;(分號)開頭的注釋信息行,對於剩餘的空白行可以再用^$來表示並反選過濾,最後將過濾後的可用參數信息通過重定向符覆蓋寫入到原始文件名稱中即可。samba服務程序過濾後的參數並不復雜,為了更方便同學們查閱參數功能,劉遄老師在重要參數行後面都寫上了注釋說明:
[root@linuxprobe~]#mv/etc/samba/smb.conf/etc/samba/smb.conf.bak
[root@linuxprobe~]#cat/etc/samba/smb.conf.bak|grep-v"#"|grep-v";"|grep-v"^$">/etc/samba/smb.conf
[root@linuxprobe~]#cat/etc/samba/smb.conf
4. 怎麼用linux系統做伺服器
1、安裝ftp服務端,方便你從客戶端上傳文件。linux上一般安裝vsftp.
VSFTP的軟體安裝包是: vsftpd-2.2.2-12.el6_5.1.i686.rpm
查詢:#rpm -q vsftpd
安裝:#rpm -ivh vsftpd-2.2.2-12.el6_5.1.i686.rpm或者直接yum install vsftpd
啟動、停止及重啟VSFTP的命令: #service vsftpd start/stop/restart
配置文件:
/etc/vsftpd/vsftpd.conf //主配置文件
/etc/vsftpd.ftpusers //被禁止登錄FTP的用戶文件
/etc/vsftpd.user_list //允許登錄FTP的用戶文件
a、將登錄後的用戶限制在本地家目錄下:
#vi /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
新建受限用戶的列表文件並加入受限用戶名
#vi /etc/vsftpd.chroot_list
raykeso
重啟ftp服務
#service vsftpd restart
2、安裝apache,開啟目錄索引,這樣你就可以瀏覽和下載文件。
apache配置文件
<Directory"I:/build/dist"> #設置瀏覽文件的目錄
Options Indexes#開啟目錄列表索引模式Order allow,deny
Allow from all
</Directory>
5. 中小型企業使用linux操作系統來做文件共享伺服器的好處和壞處是什麼
為的就是安全穩定。
用命令行還是圖形界面自己選,各有各的優點,但必須有會用的人。另外,很多企業的辦公用計算機都是 Windows 的,Linux 下面的兼容理論上沒問題,但實際還是需要很多設置。很多 Linux 的文件共享伺服器特有的功能用不到。
擴容的問題看你之前用的什麼分區類型,Linux 有個類似 Windows 的動態卷的東西,叫 LVM ,也就是邏輯卷管理。這東西支持動態分區擴容(也就是兩個分區連起來)。另外,還有 aufs 這種聯合多個文件夾同時讀寫的特殊系統,可以把兩個分區掛載到同一個目錄上實現分布式的讀寫。另外,Linux 特有的分區掛載到目錄上的功能,完全可以把一個新的硬碟分區掛載到共享目錄的某個文件夾上提供擴容(其實 NTFS 也支持)。
RAID 可以用軟的,lvm 支持軟 RAID ,也支持不同分區大小的 RAID 組合存儲。不過不好的是軟 RAID 不如硬體的性能,但彈性很好功能更多。
如果還沒有用 Linux 文件共享伺服器。我建議是去找個支持硬體 RAID 的伺服器上硬體 RAID ,同時也要上 lvm ,為以後軟 RAID 或者擴容什麼的提供彈性。
如果找個一般的台式機做文件伺服器,有些高端的桌面機主板支持 RAID 的。可以考慮用軟硬結合的方式實現性能和安全的提升。