引入:
最近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)中的資源了:
總結:
samba服務器的安裝配置還是比較簡單的,希望這文章對大家有借鑑作用,但是很多複雜功能,我還沒涉及,不過51CTO的那個專題的確不錯,強力推薦一看。