歡迎您光臨本站 註冊首頁

Samba剖析與定製技巧

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  摘 要
本文較為詳細地對Linux的Samba服務進行了剖析,內容涉及Samba的核心、語法、組
成,以及
Samba的啟動與停止。同時給出了定製Samba的幾個技巧。

關鍵詞 Samba,剖析,定製

1 引 言

Linux是一個優秀的網路操作系統,它可與多種網路集成。Linux系統的穩定性、可靠性受到
了廣大用戶
的歡迎,在小型網或者在公司、部門、單位等內部網(Intranet)上,常將Linux充當有效
而強勁的文件
和列印伺服器,讓windows客戶機共享Linux系統中的文件。這種Linux與 windows網路集成
是通過samba
來實現。Samba是一組軟體包,使Linux支持SMB協議,該協議由TCP/IP實現,它是windows網
絡文件和打
印共享基礎,負責處理和使用遠程文件和資源。在預設情況下,windows工作站上的Micros
oft client使
用服務消息塊(SMB)協議。正是由於samba的存在,使得windows和Linux可以集成並互相通
訊。

2 Samba核心

samba的核心是兩個守護進程smbd和nmbd程序,在伺服器啟動到停止期間持續運行。Smbd和
nmbd使用的全
部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd兩個守護進程說明輸出什麼
以便共享,
共享輸出給誰及如何進行輸出。Smbd進程的作用是處理到來的SMB軟體包,為使用該軟體包
的資源與
Linux進行協商,nmbd進程使其它主機(或工作站)能瀏覽Linux伺服器。

3 Samba語法

一個完整的 smb.conf一般由Global settings和share Definitions兩部分組成。每部分由
消息頭和參數
兩部分構成。消息用「[ ]」標誌,參數結構形式為:
parameter = value。
其中,parameter可以是一個或用空格分隔的多個單詞,value 可以是布爾值、數字或字元
串。參數告訴
了smba提供何種服務。
在smb.conf文件中,註釋行以「#」開頭,同時每項中英文字母不區分大小寫,在一行最後
字元尾加
「\」,可將一行分成多行。用「;」開頭的行,是可改變的配置,將「;」去掉時,該配
置將取作用。

4 Samba組成

4.1 Global settings(全局參數的設置)
該部分由[global]段完成Global的設置,該部分提供了全局參數,對samba的功能具有很大
的影響,主要
用來設置整個系統規則。[global]段主要參數有:
workgroup=mygroup 提供NT域名 或工作組名 , mygroup是系統Red Hat6.0預置的名 字,
用戶可根據
實際情況, 給出與windows的域名 或工作組名 相同 的名 字, 以指 出samba將在該域或
工作組範圍中
起作用。
server string=samba server 指 定服 務信息通常為samba服 務。
hosts allow 允許登錄的Linux-samba的主機名 單, 用IP地址給出, 多個IP地址用空格分
開, 不 在
名 單中的主機將不 能得到samba提供的服 務, 這也是網路安全的一個方面。
printcap name 指 定printcap文件地址, 通常為/etc/printcap, 包含了Linux印表機的
配置信息,
在ReaHat linux中, lpd守護進程讀取printcap文件的配置信息, 然後監測系統的列印請
求並管理列印
進程。
load printers 允許使用共享印表機時, 默認值為yes。
printing 如果使用的印表機是非標 準的, 那麼應該指 出印表機系統類型。在Linux環境
中, 通常指
定為bsd類型。
guest acount 來賓帳戶, 表示用哪一個Linux用戶作為所要的客戶連接。由於該帳戶許可權
很小, root
用戶通常將其置為nobody。
security 指 定安全模式。大多數用戶使用user級的安全模式, samba用本地Unix口令文件
驗證。如果
設置為server時, samba將用password server設定windows NT域服 務器驗證方式, 格式
為password
server=NT域名 。
domain logons 為從win95工作站登錄samba提供域名 登錄服 務, 應使該項置為yes。
preserve case 與short preserve case 由於在Linux系統中英文大小寫視為不 同 的內容
, 為在
windows中保持原有的大小寫狀態, 這兩項全置yes。
4.2 Share Definitions(共享定義)
4.2.1 [homes]段
在[homes]部分指定windows共享的主目錄,如果在windows工作站登錄的名字與Linux用戶名
相同,提供
的口令也一致,那麼打開網路鄰居,雙擊共享目錄圖標,就可獲得訪問該目錄的權力。從w
indows訪問
Linux主目錄時,用戶名作為主目錄共享名。[homes]段的主要參數有:
comment 說明提供的服 務為Home Directories服 務。不 影響操作。
browseable 指 定其它用戶能否瀏覽該用戶主目錄。一般置為no, 禁止其它用戶訪問, 確
保數據安
全。
writable 使用戶訪問該目錄時具有讀取和寫入主目錄中的文件時, 取值為yes, 只有讀取
許可權時應置
為no。
4.2.2 [printers]段
[printers]部分用於指定如何共享 Linux網路印表機,從windwos系統訪問Linux 網路列印
機時,共享應
是printcap中指定的Linux印表機名。該段中主要參數有:
browseable 若取值為yes, 則允許其它用戶訪問印表機。否則, 限制其它用戶的訪問權。
printable 應置為yes, 才能實現列印。
public 置為no時, 客戶帳號不 列印出來;置為yes, 則列印出客戶帳號。
writable 印表機是輸出設備 , 不 可寫入, 應置為no。
4.2.3 [tmp]段
該部分是為所有用戶提供臨時共享方法。主要參數有:
path 指 定臨時共享路徑。通常為/tmp。
read only 置為no時, 用戶對/tmp有可讀、可寫和執行的許可權。
public 一般置為yes, 以便讓所有用戶共享使用/tmp目錄。
4.2.4 [public]段
該部分提供了所有用戶都可以共同訪問的目錄。除了那些屬於維護人員具有讀、寫、執行權
外,用戶只
具有讀取的訪問許可權,主要參數有:
path 指 定公眾共享目錄路徑, 通常為/home/samba。
public 取值為yes, 允許公眾共享。否則, 禁止公眾共享/home/samba目錄。
writable 取值為yes時, 公眾有可寫權力。
printable 取值為no時, 無列印權力。
write list 指 定具有可寫權力的用戶名 單。
4.2.5 [fredsprn]段
該段用於指定專用印表機。
comment 指 出印表機名 字。
valid users 使用該印表機的有效用戶。
path 專用印表機使用的緩衝池數據存放在用戶主目錄。
printer 指 出使用哪一個專用(私用)印表機。
public 該印表機不 共享, 僅作專用(私用)。
writable 緩衝池中的數據不 可寫, 應置為 no。
printable 指 定列印能否啟動, 一般值為yes。
4.2.6 [fredsdir]段
本段用於指定私用目錄,以供指定的用戶使用,該用戶對該目錄具有寫許可權。
comment 註明該目錄為誰提供服 務。
path 指 定私用目錄路徑, 以便指 定用戶可讀寫。
valid users 指 定使用該私用目錄的合法用戶。
public 當取值為no時, 該私用目錄不 供公眾用戶所共享。
writable 指 定的用戶對該私用目錄具有寫許可權時, 取值應為yes。
printable 取值為no時, 不 可列印。

5 samba的啟動與停止

在預設情況下,Red Hat Linux的samba在啟動時就已投入運行。也可利用系統腳本來手工啟
動和停止
samba。具體方法如下:
# /etc/rc.d/init.d/smb start (啟動samba)
# /etc/rc.d/init.d/smb stop (停止samba)

6 定製samba技巧

用戶通過對smb.conf文件進行vi編輯,可以添加、刪除及修改smba提供的多種服務。Smb.c
onf一般位於
/etc 目錄下,在定製符合實際需求的smb.conf時,最好使用
# cp /etc/smb.conf /etc/smb.conf.old
進行保存。要查看smb.conf的內容時,可執行:
# vi /etc/smb.conf
6.1 向公眾開放 Linux文件資源,來訪者只有讀許可權。
[public]
comment=public stuff
path = /
public = yes
writable = no
printale = no
write list = @staff
6.2 共享CD-ROM
修改smb.conf之前,先安裝光碟機,可執行下列命令:
# mount - t iso9660 /dev/cdrom /mnt/cdrom
然後定製samba,內容如下:
[cdrom]
path = /mnt/cdrom
ready only = yes
public= yes
6.3 為多個用戶提供服務
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中的文件有寫許可權)
printable = yes (允許列印)
6.4 向公眾用戶開放/dev目錄,瀏覽設備類型。
[dev]
comment = open and browse the /dev directory
path = /dev (路徑為/dev)
ready only = yes (只讀)
public = yes (公眾共享)



通信地址:湖北孝感學院計算機科學系(432100) 李革新
聯繫電話:0712-2841540
E-mail: lgx2000@yeah.net


[火星人 ] Samba剖析與定製技巧已經有559次圍觀

http://coctec.com/docs/linux/show-post-69954.html