<b>使用Samba伺服器建構私有和公共共享目錄</b>
<b></b>
<b>實驗背景:</b><b></b>
小諾公司使用RHEL4系統建構了Linux伺服器,并在該伺服器上預設安裝了Samba伺服器及相關軟體包作為該公司的檔案伺服器。公司現在需要為所有使用者建立一個公用檔案夾作為所有員工交流用,其次為每個員工建立一個屬于自己的共享檔案夾,要求必須通過對應的賬号和密碼才能通路。本實驗采用檔案夾public作為公用檔案夾,而xiaonuo和dreamfire作為兩個私人檔案夾,對應的使用者名和檔案夾名相同。
<b>實驗步驟:</b><b></b>
<b>1、 </b><b>Samba</b><b>伺服器的安裝</b>
RHEL4系統中預設安裝了Samba伺服器和客戶機的所有軟體包,這些軟體包都在RHEL4的第二張CD光牒中。如果需要可以使用rpm –ivh指令進行安裝。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211923I4mZ.jpg"></a>
為了能夠更好地了解samba伺服器的相關配置可以通過man smb.conf進行檢視幫助。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211925szK0.jpg"></a>
為了能夠更清晰地查閱smb.com檔案,可以使用grep –v指令去除注釋行和樣例行的内容。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211927EvBP.jpg"></a>
<b>2、 </b><b>Samba</b><b>使用者賬号及使用者目錄設定</b>
<b>2.1</b><b>、删除使用者配置檔案模闆裡的檔案</b>
在smb.conf配置檔案中,[homes]共享目錄是Samba伺服器預設提供配置的,也是比較特殊的共享設定。[homes]共享目錄并不特指某個目錄,而是表示Samba使用者的宿主目錄,即Samba使用者登入後可以通路同名系統使用者的宿主目錄中的内容。
在宿主目錄中,預設情況下會存在一些隐藏的使用者配置檔案,而在使用UNC路徑通路的時候會出現這些隐藏的配置檔案,會對使用者帶來不便,而每個使用者的配置檔案都是從使用者配置檔案模闆“/etc/skel/”中複制過去的,是以需要将模闆裡的配置檔案都删除掉,這樣,建立的使用者宿主目錄裡就不會存在任何檔案。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211930sA7p.jpg"></a>
<b>2.2</b><b>、建立Samba</b><b>使用者賬号</b>
Samba伺服器不使用Linux系統的使用者賬号進行使用者人在,而是維護自己的使用者賬戶檔案。Samba伺服器使用者賬戶檔案保持在“/etc/samba”目錄中,檔案名是smbpasswd,初始狀态smbpasswd檔案不存在,在第一次使用smbpasswd指令建立Samba使用者時自動建立。
使用smbpasswd指令的“-a”選項可以向smbpasswd檔案中添加Samba使用者賬戶,指令中需要指定要添加的使用者名作為參數,smbpasswd指令執行過程中會提示設定該Samba使用者的密碼。在建立Samba使用者賬戶之前需要建立同名的Linux系統使用者賬戶。
注意:為了考慮安全性,Linux系統使用者賬戶不需要設定密碼,也登入不了系統。而在工作環境中,為了考慮安全性,Samba伺服器隻是充當檔案伺服器,隻允許虛拟使用者和管理者通路,其它使用者是不允許登入的。
<b>Smbpasswd</b><b>指令參數詳解:</b>
-h:顯示smbapasswd的指令格式幫助
-a:添加指定的使用者賬戶
-d:禁用指定的使用者賬戶
-e:啟用指定的使用者賬戶
-x:删除指定的使用者賬戶
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211934BRGV.jpg"></a>
使用ls –a 可以檢視宿主目錄是否還有隐藏的檔案。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_12442119362JKB.jpg"></a>
<b>2.3</b><b>、添加公共目錄public</b>
要求任何使用者都可以通路公共檔案夾public,并且具有讀寫的權限。任何使用者在公共目錄中都以Linux中nobody(nobody屬于系統中存在的特殊使用者,這個使用者是不允許在系統中正常登入的)系統使用者的身份出現,即在公共目錄中任何使用者建立的檔案都屬于nobody系統使用者。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_12442119387o4z.jpg"></a>
<b>2.4</b><b>、smb.conf</b><b>檔案的全局配置</b>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211939KJyz.jpg"></a>
workgroup = xiaonuo.com 設定samba伺服器所在的工作組的名稱
server string = samba server 設定samba伺服器的說明文字,用于描述samba主機
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211942zYsf.jpg"></a>
log file = /var/log/samba/%m.log 設定samba伺服器的日志檔案,“%m”變量表示用戶端主機的名稱。
Max log size = 50 設定日志檔案的最大容量
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211946wB1d.jpg"></a>
Security = user 表示由提供服務的Samba伺服器負責檢測賬戶和密碼,是Samba預設的安全設定。
Security = share 表示使用者不需要賬戶及密碼即可登入Samba伺服器。
Security = server 表示檢查賬戶及密碼的工作指定由另一台Windows伺服器或Samba伺服器負責。
Security = domain 表示指定windows域控制伺服器來驗證使用者的賬戶及密碼。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_12442119483Qfx.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211951oRnY.jpg"></a>
<b>2.5</b><b>、smb.conf</b><b>檔案的局部配置</b>
<b>配置[homes]</b><b>共享目錄</b>
comment用于設定共享的說明資訊。
browseable設定為no表示所有samba使用者的宿主目錄都不能被看到,隻有登入使用者才能看到自己的宿主目錄,這樣設定可以加強samba伺服器的安全性。
writable設定為yes表示使用者可以對該共享目錄寫入,設定使用者對自己的宿主目錄具有寫權限是比較合理的。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_12442119527yyA.jpg"></a>
<b>配置[public]</b><b>共享目錄</b>
注意:在smb.conf中有[public]的配置模闆,可參考進行配置
path = /home/public 設定public目錄的共享路徑
public = yes 表示該目錄對于所有samba使用者是可見的
only guest 設定為yes表示所有使用者在使用該共享目錄時的使用者身份都是guest,即linux系統使用者nobody。
writable設定為yes表示該共享目錄對于使用者可寫。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211954E8tj.jpg"></a>
<b>2.6</b><b>、對smb.conf</b><b>檔案配置的測試</b>
在對smb.conf檔案完成所有配置以後,可以使用testparm指令對該配置檔案進行測試。testparm指令是samba伺服器軟體包中提供的配置檔案測試工具,可以對smb.conf配置檔案的文法進行檢測,并顯示目前配置的清單。
注意:testparm指令顯示的配置清單可能與smb.conf中的配置内容稍有不同,這是由于testparm指令對配置檔案的内容進行了處理,檔案中的預設值設定項的内容會被忽略。可以看出testparm指令顯示的配置清單與smb.conf檔案中配置含義是完全相符的。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211957Pae5.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211960oxoN.jpg"></a>
<b>2.7</b><b>、啟動samba</b><b>伺服器</b>
啟動smb服務,相當于同時對smbd和nmbd兩個伺服器程式進行啟動。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211962dUG4.jpg"></a>
<b>3、 </b><b>使用windows</b><b>用戶端進行測試</b>
在windows下使用UNC路徑進行通路Samba伺服器。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211964IAum.jpg"></a>
輸入虛拟使用者名和密碼
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211965Csf2.jpg"></a>
可以看到公共共享目錄public和登入的使用者目錄xiaonuo
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211967Ys5y.jpg"></a>
xiaonuo使用者可以在自己的目錄裡添加、修改、删除檔案或檔案夾也可以在public目錄中添加、修改、删除檔案或檔案夾。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211970CCTu.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211973Ys0c.jpg"></a>
删除已有連接配接,然後使用dreamfire使用者登入,可以看出,所有使用者登入隻能看到自己的目錄以及共享目錄,其它使用者的目錄是隐藏的,這樣可以增加其安全性,避免一些使用者使用宿主目錄名稱猜測密碼。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211976cL9U.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211977HNqS.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211979Haas.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211981NgMH.jpg"></a>
<b>4、 </b><b>Samba WEB</b><b>工具管理(swat</b><b>)可以通過web</b><b>界面管理samba</b><b>伺服器。</b>
<b>4.1</b><b>、安裝swat</b>
Swat軟體包位于RHEL4系統的第四張安裝CD光牒中。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211984x5VR.jpg"></a>
swat是受xinetd超級伺服器管理的服務程式,在安裝的預設狀态下是禁用的,是以需要使用chkconfig指令啟用swat服務,并重新啟動xinetd服務程式。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_124421198609l8.jpg"></a>
<b>4.2</b><b>、配置swat</b>
修改only_from = 200.200.200.100,也就是管理samba伺服器的用戶端的IP位址,從配置中可以看出通路的端口号為901,使用的使用者為root,也可以修改為其它使用者。
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211988t7iY.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211990KBA0.jpg"></a>
<b>4.3</b><b>、重新啟動xinetd</b><b>服務。</b>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211992kcX7.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211995qqXy.jpg"></a>
<a href="http://dreamfire.blog.51cto.com/attachment/200906/5/418026_1244211998vCgu.jpg"></a>
本文轉自淩激冰51CTO部落格,原文連結:http://blog.51cto.com/dreamfire/163376,如需轉載請自行聯系原作者