引入:
最近audit别的團隊時候發現使用了samba用于跨平台的檔案共享,剛好我手裡剛申請了一台CentOS機器,是以我就想搭建一個samba伺服器玩玩,我看到51cto上已經出了一個專題:
http://os.51cto.com/art/200512/12843.htm
專門講解samba的有關知識,收益匪淺,掌握基本原理後,小實踐了一把,還是很順利的,20分鐘就KO了。
實踐:
Part 1: 基本安裝
首先還是用yum install來安裝samba.

這裡會自動解析依賴關系。
一路選擇Y,最後samba及其依賴包都被安裝了:
現在我們就啟動samba:
确認samba服務已經開啟:
Part2: 配置samba伺服器
vi /etc/samba/smb.conf
首先配置[global]部分,它給出了全局設定
workgroup是配置在某個工作組中,如果區域網路通路最好讓所有機器在同一個工作組
hosts allow 配置了哪些主機是可以通路這個samba伺服器的,因為我隻想本地或者區域網路通路,而區域網路的ip位址字首都是192.168。
最終配置如下:
下面配置[homes]部分,它主要是對于samba使用者通過什麼規則,限制來通路自己的主目錄
browseable設為yes,writable設為yes 表明登入的samba使用者既可以讀也可以寫自己的主目錄
共享列印機服務我們暫時不用是以不配置了。
下面配置[netlogon]部分:
因為預設samba使用者隻能通路自己目錄,為了讓多個使用者共享通路某個目錄,我們配置[public]部分:
下面,我們用testparm指令來測試我們的配置是否正确:
這裡出現了 “Loaded services file OK ”字樣,說明我們配置完全正确。
我們重新開機samba讓其生效。
Part 3: 關閉CentOS防火牆
當我在我自己desktop(裝的windows XP) 嘗試去通路samba伺服器時候,提示以下問題:
很簡單,這個問題我們經常遇到,因為我們拿到的是新裝的CentOS系統,而預設防火牆是開着的,是以我們将其關閉即可:
這次可以通路這個機器了,但是提示輸入使用者/密碼:
Part 4: 建立samba賬号和密碼用于通路:
檢視相關文章得知,通路samba伺服器的賬戶必須是一個samba伺服器所在的作業系統管理的某賬戶。為此,添加一個系統賬戶(假設我們建立名字叫samba):
我們為這個建立的系統賬戶,将其作為samba伺服器賬戶,為其建立samba密碼(假設我們這裡設的密碼是samba_password):
直到顯示"Added user samba"才算成功。
重新開機samba伺服器,再從windows系統登入(samba/samba_password)這台samba伺服器,果然成功了:
Part 5: 關閉centos對于安全管理的限制
在我們成功登入到192.168.71.43之後,當我們通路samba目錄時候,我們被拒絕了:
這就奇怪了,我們明明在smb.conf中的[homes]子產品配置了browsable=yes,還配置了valid user,為什麼不讓我們通路呢?這個困擾了我一段時間,後來找到原因了,原來centos下面有個selinux子產品,它增加了centos的通路安全控制:
此檔案中預設的SELINUX被設定為enforcing,表明預設啟用安全控制,是以阻止了 windows系統通路這個centos系統的檔案資源,我們将其設為disabled來禁用這個安全管理,如下:
儲存後重新啟動centos系統,再通過windows通路。這次我們終于成功的用samba使用者名登入,并且可以通路samba伺服器上對應的samba目錄(home directory)中的資源了: