萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Samba剖析與定制技巧

Samba剖析與定制技巧

class="21889"> 摘 要 本文較為詳細地對Linux的Samba服務進行了剖析,內容涉及Samba的核心、語法、組成,以及
 Samba的啟動與停止。同時給出了定制Samba的幾個技巧。
 
 關鍵詞 Samba,剖析,定制
 
 1 引 言
 
 Linux是一個優秀的網絡操作系統,它可與多種網絡集成。Linux系統的穩定性、可靠性受到了廣大用戶
 的歡迎,在小型網或者在公司、部門、單位等內部網(Intranet)上,常將Linux充當有效而強勁的文件
 和打印服務器,讓windows客戶機共享Linux系統中的文件。這種Linux與 windows網絡集成是通過samba
 來實現。Samba是一組軟件包,使Linux支持SMB協議,該協議由TCP/IP實現,它是windows網絡文件和打
 印共享基礎,負責處理和使用遠程文件和資源。在缺省情況下,windows工作站上的Microsoft 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用戶名相同,提供
 的口令也一致,那麼打開網絡鄰居,雙擊共享目錄圖標,就可獲得訪問該目錄的權力。從windows訪問
 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.conf一般位於
 /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: [email protected]
copyright © 萬盛學電腦網 all rights reserved