samba伺服器的基本配置(一)----參數詳解

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

一、SMB基本介經紹
1、 Samba是基於NETBIOS協議的用於和WINDOWS系統共享文件或印表機的程序.
2、讓LINUX和WINDOWS不同系統之間可以互相訪問.
2、 可以做文件伺服器和印表機伺服器,即文件和印表機共享.
3、 可以做域伺服器和備份域伺服器
4、 可以成為本地主瀏覽伺服器(LMB).保存本地所有共享資源,為客戶提供所有資源的列表.當WINDOWS用戶用網上鄰居訪問時,可以查找到本地所有共享文件及印表機.
註:SMB是一個NETBIOS協議.所以不能跨網段. 但基於NETBIOS OVER IP也可以跨不同網段.

二、SMB的安裝及進程
Smb的運行需要SMBD和NMBD兩個進程的動行.
SMBD:管理smb主機共享目錄、文件、印表機等.主要是針對網路上的共享資源進行管理的服務.
NMBD:管理群組,域和NETBIOS NAME解析.提供瀏覽服務,顯示網上絡上的共享資源列表.

三、SMB的命令

1、 smbtree
2、 smbclient
3、 smbpssword
4、 nmblookup(類似於nslookup)
5、testparm //配置完smb.conf后,進行檢查的命令.

以下詳解以下幾個命令:

smbpasswd 命令

smbpasswd [-adem] username

-a:在smbpasswd密碼文件里新增一個用戶
-d:讓在smbpasswd密碼文件里的某個帳號暫時無法使用samba
-e:與-d參數相反,讓某個帳號恢復可以使用samba
-m:該username為機器代碼,與domain有關.



smbclinet 命令詳解:

smbclinet -L 目標IP地址或主機名 -U 登錄用戶名%密碼
smbclinet -L 192.168.9.4 //查看samba伺服器192.168.9.4的所有共享資源
smbclinet -L 192.168.9.4 -u khpq305 //以samba帳號看samba伺服器共享的目錄.這裡只會顯示192.168.9.4 samba伺服器
對用戶khp的共享資源.





四、SMB的的配置
SMB的配置文件分兩個大的模塊:一是全局模塊,一是共享資源模塊.

(一)全局配置(global)

1、 基本配置

(1) workgrup=linux //設置工作組或域名.會出現在WINDOWS的網上鄰居和LINUX的網路伺服器中.注意工作組名要相同.
(2) netbios name = name //設置主機名
(3) server sting = samba server //伺服器主機說明
(4) host allow = 192.168.9.0 //安全性設定,允許可訪問samba server的客戶端.
(5) interfaces= ip地址及掩碼 //當有多個網卡時,可以設置多個網卡地址.


2、 日誌文件的設置

(1)Logfile=var/log/samba/%m.log //log為會不同的登錄用戶建日不同的日誌.記錄用戶訪問的日誌
(2)max.logsinze=0 //定義日誌文件是最大限制. 為0時,表示不作限制.






3、 安全級別的設置
(1) security= (share user server domain ads)
share :用戶不需帳號密碼就可以登錄SMABA伺服器
user:由samba伺服器檢查用戶的帳號和密碼.即需要驗證才能登錄.配置此項時,需要配置smbpasswd文件.並且需要smb伺服器的本地擁有此帳號的同時smbpsswd文件中也擁有此帳號.這是默認級別.
Server:檢查登錄用戶的帳號和密碼,並用另一台SABMA伺服器進行驗證.如無法找到驗證伺服器,將使用user級別.需要配置 password server項.
Domain:檢查登錄用戶的帳號和密碼,並用另一台域控制器驗證用戶輸入的帳號和密碼.需配置password server項.使用此級別,SAMBA伺服器只是作為域的客戶端,並不具有域伺服器的功能.
Ads:具備域伺服器功能.充當域的域伺服器.
以上除SHARE級別外,其他級別都需要在本機系統帳號中有需要登入伺服器的客戶帳號存在.



(2) password server= 192.168.9.1 //當為server和domain級別時,需要配置此項,以指定另一台驗證伺服器的地址.
(3) smbpasswd file = /etc/samba/smbpasswd //當為user級別時,在此處文件中增加用戶和密碼. 用smbpasswd命令.
(4) encrypt passwords=yes //用戶密碼加密
(5) password level=8 //密碼等級
(6) username level=8 //用戶名等級.當參數越大時,所嘗試用戶名大小寫字母組合就越多.當用戶名全為小寫時,此項可不定義.



4、 口令同步
(1) unix.password sync =yes //當windows用戶修改了口令后,samba就同步用戶的unix口令.並用password programe中的指定程序,作為root修改unix下的用戶口令.
(2) password programe=user/bin/passwd/%u //指定設置UNIX帳號密碼的程序.即SAMBA運行哪個程序來修改用戶的UNIX口令.
(3) passwd chat //當windows客戶端修改口令時,SAMBA伺服器提供給WINDOWS客戶端的提示.(如舊密碼是多少,要修改成什麼新密碼,類似的提示序列)

註:windows 和unix的密碼的存儲是兩種演算法和方法.所以當windows客戶端修改了自已的密碼時,無法在LINUX伺服器上修改相應的密碼.此時就要藉助 smbpasswd文件,即samba密碼文件.此文件是samba承載windows客戶密碼的地方.即當windows客戶端修改了自已的密碼后,會更新SAMBA伺服器端密碼文件smbpasswd文件中的相對應的密碼.
然後再更新LINUX系統本地的密碼.(etc/password文件中的密碼)以達到同步.當然要在smbpasswd文件中事先錄入相應的帳號.

(4) pam password change =YES //表示使用權用PAM來修改SMB客戶端的密碼.而不使用上面 password program中指定的程序.



5、 用戶名映射

Username map = /etc/samba/smbusers //指定客戶端用戶名與伺服器端用戶名的用戶映射文件.
些處的用處自已理解有二:
一是,windows的用戶名長度可以很長,但samba只能8位.當多於8位的用戶名時,就需要映射.例: root = administrator admin; 即把windows的administrator用戶映射為UNIX的root用戶名.
二是,為了安全起見,也可以映射.每一個客戶端在samba伺服器里需要同時擁有本地帳號(etc/password里擁有的實際帳號)和samba帳號(smbpasswd里擁有帳號),且這兩個帳號的用戶名和密碼相同,如果知悉了samba的帳號和密碼就知道了samba本地的帳號和密碼,就很不安全.就可以把虛擬帳號映射到samba帳號.這樣客戶端就用虛擬帳號訪問samba資源,即使被黑客知道了虛擬帳號的帳號和密碼也無法操控smaba伺服器了.
例: test = test1 test2 test3
即把test1 test2 test3這三個虛擬帳號映射到samba帳號 test上.就算黑客知道了test1和test2等虛擬帳號的密碼,也無法得知samba伺服器的系統帳號test的帳號名和密碼.就安全多了.

註:也可以把一個組名映射到一個帳號: test =@zjt 即把zjt這個組,映射到test這個帳號上.



6、印表機配置
(5)printcap name=/etc/printcap //設置印表機配置文件路徑
(6)loadprinters = yes //是否將印表機共享
(7)printing=cups //印表機類型,默認為CUPS,還有BSD,SYSV,PLP.AIX等.
(8)guest account = pcguest //讓用戶pcguest以匿名的身份訪問samba伺服器,注意/etc/passwd中有此用戶存在. 即samba伺服器的本地帳戶中要有此帳號.可以根據實際情況和喜好,更改為其他用戶名.


7、 瀏覽伺服器設置

(1) local master = no //是否參與本地主控瀏覽器的選舉.當設為YES時,則本samba伺服器參與到本地主控瀏覽器的選舉. 通過OS –LEVEL參數的設定,以決定是否選舉成功.NO則不參加選舉.


(2) os level =33 //本地子網如有多個瀏覽服務則進行選舉.此處設定優先順序.優先順序越高選舉上的機會越大.0為總選舉不上.33為總選舉成功. 17則和WINNT級別一樣.
(3) domain master = YES //設定是否作為域主控制瀏覽器. 當已有一個windows NT的主域控制器時,這個一定要設為NO
(4) preferred master=yes //設定為此samba伺服器是否為它所屬工作組的主控瀏覽器.設為YES的話,每次啟動都會強迫進行重新選舉.這個參數要謹慎.如幾個都設為主控瀏覽器將會不停的選舉.


跨子網瀏覽:
A:客戶端瀏覽的步驟:
客戶端要瀏覽域或工作組網路時(不是INTERNET網頁瀏覽),先向網路上發送瀏覽請求,以得到所在域或工作組的瀏覽伺服器列表.再通過向任一瀏覽伺服器請求,以得到客戶端列表.(如網上鄰居里的域裡面得到客戶端列表一樣)(瀏覽伺服器可以是運行WINDOWS NT伺服器,工作站,WIN9X,或SAMBA的系統)這樣客戶端不用維護瀏覽列表(客戶端列表),需要查找網路中的其他工作站時,先向瀏覽伺服器請求,瀏覽伺服器再傳回瀏覽列表.但瀏覽伺服器只傳回本子網內的列表,需跨網段查詢時,工作方法如下B.就需配置以下幾個參數.

B:跨網段瀏覽:
每個域有一個域主控瀏覽器,每個子網擁有一個本地主控瀏覽器.域主控瀏覽器每15分鐘向子網主控瀏覽器發送請求,把子網主控瀏覽器的瀏覽列表與自已的合併,這樣就擁有了整個域的瀏覽列表,包括與自已不同子網的瀏覽器列表.

(5) remote browse sync = 192.168.3.255 或 192.168.3.20 //設置同步子網的廣播地址或對端子網中的主控瀏器地址.即和哪些子網的主控瀏覽器進行瀏覽列表同步


(6) remote announce=192.168.1.255 192.168.2.44 //如一個工作組或域跨越了多個子網時,每個子網都會有一個主瀏覽器.則在本地主瀏覽器上配置對端子網的廣播地址,或對端子網的主瀏覽器地址.即向別的子網宣告自已的存在.



8、 網路參數配置:

Wins support=yes //wins伺服器支持,即samba是否作為wins伺服器運行.當已有一個wins伺服器時,此項設為NO
WINS server //設置wins伺服器的IP地址
Wins proxy =yes //是否作為wins代理運行
Dns proxy =no //是否作為dns代理.即是否為客戶端作DNS查詢.
Domain logons =yes //作為域控制器運行





(二)共享資源模塊
除[global]段外,其他所有段都可以看作是共享資源.段名是該共享資源的名字,而段里的參數是共享資源的屬性.只是有幾個段是特殊共享資源而以.
1、普通共享資源
[share]
(1)Comment=home directory //共享的註釋說明
(2)Path=/home/share //此項是定義共享資源的目錄路徑
(3)Browsable=yes | no //默認是YES,即讓共享被客戶看到.僅當不希望被客戶看到時才用到此項.
(4)Writable =yes |no // 是否允許客戶對共享資源有寫的許可權,yes為允許寫,no為只讀.
(5)Read only = yes |no //是否只允許客戶對共享資源只讀.與writable正好相反.Yes,只為只讀,no只允許寫的許可權.
(6)Read list= fred @guest //賦予後面定義的用戶或組對共享資源的只讀許可權
(7)Write list=@admin //賦予後面定義的用戶或級對共享資源的寫許可權.而不管 read only的參數是什麼.即可以覆蓋前面定義的許可權.如一個用戶同時存在於read list和write list中,則賦予寫的許可權.

(8)Hosts allow //設定允許哪些用戶可以訪問此共享資源


(9)Hosts deny //設定拒絕哪些用戶可以訪問此共享資源. 如果全局中定議了allows或deny參數,將以全局中定義的為準,此處無效.

(10)Guest only = yes //只允許用guest帳號訪問
(11)Guest ok = yes //默認值為NO ,即設定在沒有提交帳號和口令的情況下,是否允許訪問此區段中定義的共享資源.如同意guest帳號訪問時,設為YES. 即是否允許匿名訪問.
(12)Guest account =pcguest //設置guest帳號的名稱.通常為pcguest,在區段中設置的guest帳號覆蓋全局中設置的.

(13)Admin users= root,fred //設定擁有共享管理特權的用戶.即這些用戶擁有些共享資源的管理許可權. @開頭則表示一個組, 開頭表示為UNIX組, &開頭表示為NIS組.
(14)Invalid users=root //設定不允許訪問此共享資源的用戶或組.
(15)Valid users =root //設定僅允許指定的用戶或組訪問此共享資源,其他所有用戶都不能訪問.

(16)Max connections =10 //設置此共享資源的最大連接數.此例為10個用戶.

以上設置類似於WINDOWS共享資料夾的共享許可權,下面還要以定義如WINDOWS下的安全許可權的參數.

(17) create mode 和create mask
Create mode=0664 //定義用戶在此共享資源中創建的文件的許可權. 此例中為:擁有者和擁有者組有讀和寫的許可權,而其他用戶僅為讀的許可權.
(18)directory mode 和directory mask
Directory mode =0775 //在共享文檔中創建的文件夾的許可權. 此例為擁有者和組有讀寫執行的許可權,其他用戶只有讀和執行的許可權.

(19)force create mode =0755 //即強制性規定在共熟文檔下創建的文件至少擁有755的許可權.即最低許可權的設定.可以覆蓋 create mode 設定的許可權.當create mode中的許可權與此處設定的許可權相衝突時,取兩者中許可權高的.如果此處設定的許可權比較低,而create mode中設定的許可權比較高(假如為777),將以create mode中定義的777許可權為準.



(20) force directory mode =775 //此項與上面的意思一樣,只是此處定義的是創建文件夾的最低許可權.

(21)force group 和force user //規定創建的文件或文件夾的擁有者和組擁有者是誰 .一般這兩個值來空,則表示擁有者和組擁有者為創建文件者. 如設定值,如force group=khp
Force user=khp,則不管是誰創建的文件和文件夾,擁有者都為khp和khp組.
(22)public = yes //是否允許匿名訪問



2、特殊區段的設定之[home]
此欄位的設定一般不要更改.
當客戶端向SAMBA伺服器請求建立到共享資源的連接時,將掃描samba伺服器上的所有共享資源,如果有匹配的共享資源則使用.如果沒有找到,則請求的共享被當作一個用戶名稱,並在口令工具(etc/password)中查找,如果存在這個用戶名,且得到確認,則從[home]區段中複製且創建一個共享.當創建這個從[home]中複製的共享時,[home]中沒有設定目錄(共享目錄路徑),則共享的路徑被設為這個用戶的宿主目錄.
如果查找沒有這個用戶名,剛查找是否有 [prints]共享,並用請求的共享名稱,看是否與某一印表機相匹配,如匹配則複製[prints]區段建立共享.如果都沒有,查看是否有默認共享服務.如果連默認共享服務都沒有則返回一個錯誤.

例如:客戶查找samba伺服器上是否有一個名為 khp的共享文件夾,但沒有發現有共享這個文件夾,就查找/etc/password ,看是否有一個khp的用戶名,如果有,從[HOME]中複製並創建一個共享.且共享文件夾的目錄為:/home/khp 即,khp用戶的宿主目錄.
如沒找到這個用戶名,則看smb.conf中是否有一個[prints]區段,如果有,看請求的共享與printcap 文件中的任一印表機相匹配.如果匹配則複製並創建共享.


如果仍沒找到,則看是否有默認的服務.沒有的話就返回一個錯誤信息.

3、特殊區段的設定之[prints]


Commont //註釋文字
Path=/var/spool/samba //此處為印表機共享的目錄.客戶端使用samba共享印表機列印東西時,先把列印的信息發送到此文件夾下排隊,samba再指定文件往哪個印表機上列印.如果沒有指定就一直存放在此目錄下.
Printable= yes //允許共享印表機,即用戶可以共享印表機.
Samba從/etc/printcap中獲取印表機的列表.如果有些印表機類型沒有此默認文件,則可手工建立一個.

Load printers=yes //是否載入printcap文件夾中的所有印表機以供瀏覽.
Printcap name= /etc/printcap //設定查找共享印表機printcap文件的位置.可更改.
Print =lp //當客戶關閉列印文件后,應將列印的文件發送到哪個印表機.即指定印表機.
Printer driver = hp 2200 // 給客戶端提供印表機的驅動名稱
Printer driver file= //為客戶端提供驅動.指定驅動的存放位置,客戶端可以自動的安裝驅動.






[火星人 ] samba伺服器的基本配置(一)----參數詳解已經有660次圍觀

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