Samba是實作Windows系統和Linux系統的檔案共享服務。
一、Samba的配置檔案
首先是安裝Samba
Samba的配置檔案是/etc/samba/smb.conf,預設未注釋的部分如下:
注:主要有以上三個部分:[global], [homes], [printers]
[global] 定義全局的配置,workgroup用來定義工作組,一般情況下,需要我們把這裡的MYGROUP改成WORKGROUP(windows預設的工作組名字)。
●security = user //這裡指定samba的安全等級。關于安全等級有四種:
(1)share:使用者不需要賬戶及密碼即可登入samba伺服器
(2)user:由提供服務的samba伺服器負責檢查賬戶及密碼(預設)
(3)server:檢查賬戶及密碼的工作由另一台windows或samba伺服器負責
(4)domain:指定windows域控制伺服器來驗證使用者的賬戶及密碼。
●passdb backend = tdbsam //passdb backend(使用者背景),samba有三種使用者背景:smbpasswd, tdbsam和ldapsam.
(1)smbpasswd:該方式是使用smb工具smbpasswd給系統使用者(真實使用者或者虛拟使用者)設定一個Samba密碼,用戶端就用此密碼通路Samba資源。smbpasswd在/etc/samba中,有時需要手工建立該檔案。
(2)tdbsam:使用資料庫檔案建立使用者資料庫。資料庫檔案叫passdb.tdb,在/etc/samba中。passdb.tdb使用者資料庫可使用 smbpasswd -a 建立Samba使用者,要建立的Samba使用者必須先是系統使用者。也可使用pdbedit建立Samba賬戶。pdbedit參數很多,列出幾個主要的:
(3)ldapsam:基于LDAP賬戶管理方式驗證使用者。首先要建立LDAP服務,設定 “passdb backend =ldapsam:ldap://LDAP Server”
●load printers 和 cups options 兩個參數用來設定列印機相關。
除了這些參數外,還有幾個參數:
●netbios name = MYSERVER //設定出現在網路上的芳鄰中的主機名
●hosts allow = 127. 192.168.12. 192.168.13. //用來設定允許的主機,如果在前面加 ”;” 則表示允許所有主機
●log file = /var/log/samba/%m.log //定義samba的日志,這裡的%m是上面的netbios name
●max log size = 50 //指定日志的最大容量,機關是K
[homes] 該部分内容共享使用者自己的家目錄,也就是說,當使用者登入到samba伺服器上時實際上是進入到了該使用者的家目錄,使用者登陸後,共享名不是homes而是使用者自己的辨別符,對于單純的檔案共享的環境來說,這部分可以注視掉。
[printers] 該部分内容設定列印機共享。
二、Samba試驗
下面我們來進行試驗,不過實驗之前要先關閉iptables和selinux,否則很有可能試驗失敗。
實驗一
要求:共享一個目錄,任何人都可以通路,即不用輸入密碼就可通路,要求隻讀。
1、打開Samba的配置檔案
2、建立測試目錄
3、啟動Samba服務
也可以用testparm指令測試smb.conf檔案是否配置正确:
4、測試
(1)在Windows下測試:
win+r 輸入 \\192.168.0.109 就可以看到如下圖所示:
<a href="http://s3.51cto.com/wyfs02/M02/73/1B/wKiom1X1FYbCClp7AABO-RRKVJ8582.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/73/18/wKioL1X1F7jybynpAACT6fh-ReU039.jpg" target="_blank"></a>
你可以試着修改下檔案,或者建立檔案,都會發現沒有權限,隻能讀。
(2)在Linux下測試:
客戶機上要安裝cifs-utils
挂載到/opt/目錄下
<a href="http://s3.51cto.com/wyfs02/M02/73/1B/wKiom1X1G-HRZM4iAAEYVoSXdjg739.jpg" target="_blank"></a>
實驗二
要求:共享一個目錄,使用使用者名和密碼登入後才可以通路,要求可以讀寫。
3、添加使用者
因為在[globa]中 “passdb backend = tdbsam”, 是以要使用 pdbedit 來增加使用者,注意添加的使用者必須在系統中存在,是以需要先建立系統賬号
重新開機Samba服務
注意:pdbedit有什麼指令參數,常用的還有 -L:列出Samba賬号,-x:删除某個Samba賬号
win+r 輸入 \\192.168.0.109 就可以看到要輸入賬号密碼的提示框,輸入正确後可以進入,接着我們可以對檔案夾以及檔案進行修改。
<a href="http://s3.51cto.com/wyfs02/M02/73/1C/wKiom1X1JtPQ7t2FAABCsGZSWq0516.jpg" target="_blank"></a>
注意:從上面我們可以看到會生成一個以使用者名為命名的檔案夾,因為我們沒有把[home]那個子產品給注釋掉。
<a href="http://s3.51cto.com/wyfs02/M02/73/1A/wKioL1X1LezgcgFWAADAnNL69NE272.jpg" target="_blank"></a>
注釋掉後重新開機Samba服務,我們再檢視下就會發現user1目錄不存在了。
<a href="http://s3.51cto.com/wyfs02/M01/73/1C/wKiom1X1J6ODt1ayAAEWNu3wMN4495.jpg" target="_blank"></a>
檢視下,并且我們可以/opt/目錄進行建立檔案或者檔案夾的操作。
<a href="http://s3.51cto.com/wyfs02/M00/73/1C/wKiom1X1KXPBbd3BAABLPok14iQ351.jpg" target="_blank"></a>
另外在Linux下還有一種方式通路,就是在用戶端安裝samba-client包,然後用smbclient指令通路。
<a href="http://s3.51cto.com/wyfs02/M02/73/1C/wKiom1X1KPjSkEo1AAHtQV35lVw769.jpg" target="_blank"></a>
smb也有很多指令,大家可以試試。
實驗三
要求:共享兩個目錄,public與private,其中public目錄可匿名通路,任何人可以讀寫;private目錄需要驗證使用者名密碼才能夠通路。但都是隻讀。
注:因為配置檔案中定義過檔案的權限,故不用再定義
3、建立使用者
試驗二已經定義過,我們就不用再定義。可檢視下Samba的所有賬号:
win+r 輸入\\192.168.0.109 進入後,可以看到兩個檔案夾。
public目錄可直接通路,private目錄要輸入賬号密碼驗證後才可以進入;不過都對這兩個檔案隻讀。
<a href="http://s3.51cto.com/wyfs02/M01/73/27/wKioL1X2zzDh8NJWAABSWe1hZs4430.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/73/2B/wKiom1X2zPyxAY_cAAFCaBo22V4943.jpg" target="_blank"></a>
直接回車,不用輸入密碼。
參考拓展
<a href="http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html" target="_blank">http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html</a>
<a href="http://yuanbin.blog.51cto.com/363003/117105" target="_blank">http://yuanbin.blog.51cto.com/363003/117105</a>
本文轉自 M四月天 51CTO部落格,原文連結:http://blog.51cto.com/msiyuetian/1694296,如需轉載請自行聯系原作者