Samba剖析與定制技巧
2024-07-26 00:31:31
供稿:網(wǎng)友
摘 要 本文較為詳細(xì)地對linux的Samba服務(wù)進(jìn)行了剖析,內(nèi)容涉及Samba的核心、語法、組成,以及
Samba的啟動與停止。同時給出了定制Samba的幾個技巧。
關(guān)鍵詞 Samba,剖析,定制
1 引 言
Linux是一個優(yōu)秀的網(wǎng)絡(luò)操作系統(tǒng),它可與多種網(wǎng)絡(luò)集成。Linux系統(tǒng)的穩(wěn)定性、可靠性受到了廣大用戶
的歡迎,在小型網(wǎng)或者在公司、部門、單位等內(nèi)部網(wǎng)(Intranet)上,常將Linux充當(dāng)有效而強(qiáng)勁的文件
和打印服務(wù)器,讓windows客戶機(jī)共享Linux系統(tǒng)中的文件。這種Linux與 windows網(wǎng)絡(luò)集成是通過samba
來實現(xiàn)。Samba是一組軟件包,使Linux支持SMB協(xié)議,該協(xié)議由TCP/ip實現(xiàn),它是windows網(wǎng)絡(luò)文件和打
印共享基礎(chǔ),負(fù)責(zé)處理和使用遠(yuǎn)程文件和資源。在缺省情況下,windows工作站上的Microsoft client使
用服務(wù)消息塊(SMB)協(xié)議。正是由于samba的存在,使得windows和Linux可以集成并互相通訊。
2 Samba核心
samba的核心是兩個守護(hù)進(jìn)程smbd和nmbd程序,在服務(wù)器啟動到停止期間持續(xù)運行。Smbd和nmbd使用的全
部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd兩個守護(hù)進(jìn)程說明輸出什么以便共享,
共享輸出給誰及如何進(jìn)行輸出。Smbd進(jìn)程的作用是處理到來的SMB軟件包,為使用該軟件包的資源與
Linux進(jìn)行協(xié)商,nmbd進(jìn)程使其它主機(jī)(或工作站)能瀏覽Linux服務(wù)器。
3 Samba語法
一個完整的 smb.conf一般由Global settings和share Definitions兩部分組成。每部分由消息頭和參數(shù)
兩部分構(gòu)成。消息用“[ ]”標(biāo)志,參數(shù)結(jié)構(gòu)形式為:
parameter = value。
其中,parameter可以是一個或用空格分隔的多個單詞,value 可以是布爾值、數(shù)字或字符串。參數(shù)告訴
了smba提供何種服務(wù)。
在smb.conf文件中,注釋行以“#”開頭,同時每項中英文字母不區(qū)分大小寫,在一行最后字符尾加
“/”,可將一行分成多行。用“;”開頭的行,是可改變的配置,將“;”去掉時,該配置將取作用。
4 Samba組成
4.1 Global settings(全局參數(shù)的設(shè)置)
該部分由[global]段完成Global的設(shè)置,該部分提供了全局參數(shù),對samba的功能具有很大的影響,主要
用來設(shè)置整個系統(tǒng)規(guī)則。[global]段主要參數(shù)有:
workgroup=mygroup 提供NT域名 或工作組名 , mygroup是系統(tǒng)Red Hat6.0預(yù)置的名 字, 用戶可根據(jù)
實際情況, 給出與windows的域名 或工作組名 相同 的名 字, 以指 出samba將在該域或工作組范圍中
起作用。
server string=samba server 指 定服 務(wù)信息通常為samba服 務(wù)。
hosts allow 允許登錄的Linux-samba的主機(jī)名 單, 用IP地址給出, 多個IP地址用空格分開, 不 在
名 單中的主機(jī)將不 能得到samba提供的服 務(wù), 這也是網(wǎng)絡(luò)安全的一個方面。
PRintcap name 指 定printcap文件地址, 通常為/etc/printcap, 包含了Linux打印機(jī)的配置信息,
在ReaHat linux中, lpd守護(hù)進(jìn)程讀取printcap文件的配置信息, 然后監(jiān)測系統(tǒng)的打印請求并管理打印
進(jìn)程。
load printers 允許使用共享打印機(jī)時, 默認(rèn)值為yes。
printing 如果使用的打印機(jī)是非標(biāo) 準(zhǔn)的, 那么應(yīng)該指 出打印機(jī)系統(tǒng)類型。在Linux環(huán)境中, 通常指
定為bsd類型。
guest acount 來賓帳戶, 表示用哪一個Linux用戶作為所要的客戶連接。由于該帳戶權(quán)限很小, root
用戶通常將其置為nobody。
security 指 定安全模式。大多數(shù)用戶使用user級的安全模式, samba用本地Unix口令文件驗證。如果
設(shè)置為server時, samba將用passWord server設(shè)定windows NT域服 務(wù)器驗證方式, 格式為password
server=NT域名 。
domain logons 為從win95工作站登錄samba提供域名 登錄服 務(wù), 應(yīng)使該項置為yes。
preserve case 與short preserve case 由于在Linux系統(tǒng)中英文大小寫視為不 同 的內(nèi)容, 為在
windows中保持原有的大小寫狀態(tài), 這兩項全置yes。
4.2 Share Definitions(共享定義)
4.2.1 [homes]段
在[homes]部分指定windows共享的主目錄,如果在windows工作站登錄的名字與Linux用戶名相同,提供
的口令也一致,那么打開網(wǎng)絡(luò)鄰居,雙擊共享目錄圖標(biāo),就可獲得訪問該目錄的權(quán)力。從windows訪問
Linux主目錄時,用戶名作為主目錄共享名。[homes]段的主要參數(shù)有:
comment 說明提供的服 務(wù)為Home Directories服 務(wù)。不 影響操作。
browseable 指 定其它用戶能否瀏覽該用戶主目錄。一般置為no, 禁止其它用戶訪問, 確保數(shù)據(jù)安
全。
writable 使用戶訪問該目錄時具有讀取和寫入主目錄中的文件時, 取值為yes, 只有讀取權(quán)限時應(yīng)置
為no。
4.2.2 [printers]段
[printers]部分用于指定如何共享 Linux網(wǎng)絡(luò)打印機(jī),從windwos系統(tǒng)訪問Linux 網(wǎng)絡(luò)打印機(jī)時,共享應(yīng)
是printcap中指定的Linux打印機(jī)名。該段中主要參數(shù)有:
browseable 若取值為yes, 則允許其它用戶訪問打印機(jī)。否則, 限制其它用戶的訪問權(quán)。
printable 應(yīng)置為yes, 才能實現(xiàn)打印。
public 置為no時, 客戶帳號不 打印出來;置為yes, 則打印出客戶帳號。
writable 打印機(jī)是輸出設(shè)備 , 不 可寫入, 應(yīng)置為no。
4.2.3 [tmp]段
該部分是為所有用戶提供臨時共享方法。主要參數(shù)有:
path 指 定臨時共享路徑。通常為/tmp。
read only 置為no時, 用戶對/tmp有可讀、可寫和執(zhí)行的權(quán)限。
public 一般置為yes, 以便讓所有用戶共享使用/tmp目錄。
4.2.4 [public]段
該部分提供了所有用戶都可以共同訪問的目錄。除了那些屬于維護(hù)人員具有讀、寫、執(zhí)行權(quán)外,用戶只
具有讀取的訪問權(quán)限,主要參數(shù)有:
path 指 定公眾共享目錄路徑, 通常為/home/samba。
public 取值為yes, 允許公眾共享。否則, 禁止公眾共享/home/samba目錄。
writable 取值為yes時, 公眾有可寫權(quán)力。
printable 取值為no時, 無打印權(quán)力。
write list 指 定具有可寫權(quán)力的用戶名 單。
4.2.5 [fredsprn]段
該段用于指定專用打印機(jī)。
comment 指 出打印機(jī)名 字。
valid users 使用該打印機(jī)的有效用戶。
path 專用打印機(jī)使用的緩沖池數(shù)據(jù)存放在用戶主目錄。
printer 指 出使用哪一個專用(私用)打印機(jī)。
public 該打印機(jī)不 共享, 僅作專用(私用)。
writable 緩沖池中的數(shù)據(jù)不 可寫, 應(yīng)置為 no。
printable 指 定打印能否啟動, 一般值為yes。
4.2.6 [fredsdir]段
本段用于指定私用目錄,以供指定的用戶使用,該用戶對該目錄具有寫權(quán)限。
comment 注明該目錄為誰提供服 務(wù)。
path 指 定私用目錄路徑, 以便指 定用戶可讀寫。
valid users 指 定使用該私用目錄的合法用戶。
public 當(dāng)取值為no時, 該私用目錄不 供公眾用戶所共享。
writable 指 定的用戶對該私用目錄具有寫權(quán)限時, 取值應(yīng)為yes。
printable 取值為no時, 不 可打印。
5 samba的啟動與停止
在缺省情況下,Red Hat Linux的samba在啟動時就已投入運行。也可利用系統(tǒng)腳本來手工啟動和停止
samba。具體方法如下:
# /etc/rc.d/init.d/smb start (啟動samba)
# /etc/rc.d/init.d/smb stop (停止samba)
6 定制samba技巧
用戶通過對smb.conf文件進(jìn)行vi編輯,可以添加、刪除及修改smba提供的多種服務(wù)。Smb.conf一般位于
/etc 目錄下,在定制符合實際需求的smb.conf時,最好使用
# cp /etc/smb.conf /etc/smb.conf.old
進(jìn)行保存。要查看smb.conf的內(nèi)容時,可執(zhí)行:
# vi /etc/smb.conf
6.1 向公眾開放 Linux文件資源,來訪者只有讀權(quán)限。
[public]
comment=public stuff
path = /
public = yes
writable = no
printale = no
write list = @staff
6.2 共享CD-ROM
修改smb.conf之前,先安裝光驅(qū),可執(zhí)行下列命令:
# mount - t iso9660 /dev/cdrom /mnt/cdrom
然后定制samba,內(nèi)容如下:
[cdrom]
path = /mnt/cdrom
ready only = yes
public= yes
6.3 為多個用戶提供服務(wù)
comment = userl’sstuff,user2’sstuff,user3’sstuff
path = /home/user1 (用戶userl的主目錄)
valid users = user1 user2 user3
public = no (除了user1,user2,user3外不向公眾用戶開放)
writable = yes (三用戶對/home/user1中的文件有寫權(quán)限)
printable = yes (允許打印)
6.4 向公眾用戶開放/dev目錄,瀏覽設(shè)備類型。
[dev]
comment = open and browse the /dev directory
path = /dev (路徑為/dev)
ready only = yes (只讀)
public = yes (公眾共享)
通信地址:湖北孝感學(xué)院計算機(jī)科學(xué)系(432100) 李革新
聯(lián)系電話:0712-2841540
E-mail: lgx2000@yeah.net