Linux 配置samba服務器

<p>之前咱們在windows上共享文件的話,只需右擊要共享的文件夾而後選擇共享相關的選項 <br />設置便可。然而如何實現windows和linux的文件共享呢?這就涉及到了samba服務了,這 <br />個軟件配置起來也不難,使用也很是簡單。</p> <p>samba配置文件smb.conf】 <br />通常你裝系統的時候會默認安裝samba,若是沒有安裝,只須要運行這個命令安裝(CentOS): <br />yum install -y samba samba-client <br />Samba的配置文件爲/etc/samba/smb.conf,經過修改這個配置文件來完成咱們的各類需求。 <br />打開這個配置文件,你會發現不少內容都用」#」或者」;」注視掉了。先看一下未被註釋掉的部 <br />分:</p> <p>[global] <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; workgroup=MYGROUP <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; server string=Samba Server Version%v <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; security=user <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; passdb backend=tdbsam <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; load printers=yes <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; cups options=raw <br />[homes] <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; comment=Home Directories <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; browseable=no <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; writable=yes <br />[printers] <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; comment=AllPrinters <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; path=/var/spool/samba <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; browseable=no <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; guestok=no <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; writable=no <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; printable=yes <br />主要有以上三個部分:[global],[homes],[printers]。</p> <p>[global] 定義全局的配置,」workgroup」用來定義工做組,相信若是你安裝過windows的系統, <br />你會對這個workgroup不陌生。通常狀況下,須要咱們把這裏的」MYGROUP」改 <br />成」WORKGROUP」(windows默認的工做組名字)。 <br />security=user#這裏指定samba的安全等級。關於安全等級有四種: <br />share:用戶不須要帳戶及密碼便可登陸samba服務器 <br />user:由提供服務的samba服務器負責檢查帳戶及密碼(默認) <br />server:檢查帳戶及密碼的工做由另外一臺windows或samba服務器負責 <br />domain:指定windows域控制服務器來驗證用戶的帳戶及密碼。</p> <p> <br />passdbbackend=tdbsam #passdbbackend (用戶後臺),samba有三種用戶後臺: <br />smbpasswd,tdbsam和ldapsam. <br />smbpasswd:該方式是使用smb工具smbpasswd給系統用戶(真實用戶或者虛擬用戶)設 <br />置一個Samba 密碼,客戶端就用此密碼訪問Samba資源。smbpasswd在/etc/samba中,有</p> <p>時須要手工建立該文件。 <br />tdbsam:使用數據庫文件建立用戶數據庫。數據庫文件叫passdb.tdb,在/etc/samba中。 <br />passdb.tdb用戶數據庫可以使用smbpasswd –a建立Samba用戶,要建立的Samba用戶必須 <br />先是系統用戶。也可以使用pdbedit建立Samba帳戶。pdbedit參數不少,列出幾個主要的: <br />pdbedit–ausername:新建Samba帳戶。 <br />pdbedit–xusername:刪除Samba帳戶。 <br />pdbedit–L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。 <br />pdbedit–Lv:列出Samba用戶列表詳細信息。 <br />pdbedit–c 「[D]」–uusername:暫停該Samba用戶帳號。 <br />pdbedit–c 「[]」–uusername:恢復該Samba用戶帳號。 <br />ldapsam:基於LDAP帳戶管理方式驗證用戶。首先要創建LDAP服務,設置「passdbbackend <br />=ldapsam:ldap://LDAPServer」 <br />loadprinters和cupsoptions兩個參數用來設置打印機相關。 <br />除了這些參數外,還有幾個參數須要你瞭解: <br />netbiosname=MYSERVER #設置出如今「網上鄰居」中的主機名 <br />hostsallow=127. 192.168.12. 192.168.13.#用來設置容許的主機,若是在前面加」;」則表 <br />示容許全部主機 <br />logfile=/var/log/samba/%m.log#定義samba的日誌,這裏的%m是上面的netbiosname <br />maxlog size=50#指定日誌的最大容量,單位是K</p> <p>&#160;</p> <p>[homes] 該部份內容共享用戶本身的家目錄,也就是說,當用戶登陸到samba服務器上時 <br />其實是進入到了該用戶的家目錄,用戶登錄後,共享名不是homes而是用戶本身的標識 <br />符,對於單純的文件共享的環境來講,這部分能夠注視掉。</p> <p>&#160;</p> <p>[printers] 該部份內容設置打印機共享。</p> <p>&#160;</p> <p>【samba實踐】 <br />注意:在試驗以前,請先檢測selinux是否關閉,不然可能會試驗不成功</p> <p>【linux的防火牆】 <br />1.selinux</p> <p>Selinux是Redhat/CentOS系統特有的安全機制。不過由於這個東西限制太多,配置也特別繁 <br />瑣因此幾乎沒有人去真正應用它。因此裝完系統,咱們通常都要把selinux關閉,以避免引發 <br />沒必要要的麻煩。關閉selinux的方法爲:</p> <p><a href="http://static.oschina.net/uploads/img/201212/19143018_jgtP.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://static.oschina.net/uploads/img/201212/19143018_5cMA.png" width="576" height="271" /></a></p> <p>把’SELINUX=enforcing’改爲’SELINUX=disabled’,而後重啓機器。臨時關閉selinux的命令爲</p> <p><a href="http://static.oschina.net/uploads/img/201212/19143019_gteC.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://static.oschina.net/uploads/img/201212/19143019_lHtC.png" width="336" height="94" /></a></p> <p>getenforce命令能夠獲得selinux的狀態,其中有兩種(Enforcing|Permissive),前者表示開放, <br />後者表示關閉,可是會發出警告。setenforce用來設置selinux的狀態,後面跟0則設置成 <br />Permissive後面跟1設置成Enforcing。關閉selinux的命令爲setenforce0,可是這只是臨時 <br />關閉,重啓後恢復,想要永久生效,請更改配置文件/etc/selinux/config。</p> <p>1.共享一個目錄,任何人均可以訪問,即不用輸入密碼便可訪問,要求只讀。 <br />打開samba的配置文件/etc/samba/smb.conf <br />[global]部分 <br />把」MYGROUP」改爲」WORKGROUP」 <br />把」security=user」 修改成「security=share」 <br />而後在文件的最末尾處加入如下內容:</p> <p>[share] <br />&#160;&#160;&#160;&#160; comment=shareall <br />&#160;&#160;&#160;&#160; path=/tmp/samba <br />&#160;&#160;&#160;&#160; browseable=yes <br />&#160;&#160;&#160;&#160;&#160;&#160; public=yes <br />&#160;&#160;&#160;&#160;&#160;&#160; writable=no</p> <p>&#160;</p> <p>mkdir/tmp/samba</p> <p>chmod 777 /tmp/samba <br />啓動samba服務 <br />/etc/init.d/smb start</p> <p>&#160;</p> <p>測試: <br />首先測試你配置的smb.conf是否正確,用下面的命令 <br />testparm <br />若是沒有錯誤,則在你的windows機器上的瀏覽器中輸入file://IP/share 看是否能訪問</p> <p>&#160;</p> <p>2.共享一個目錄,使用用戶名和密碼登陸後才能夠訪問,要求能夠讀寫</p> <p>打開samba的配置文件/etc/samba/smb.conf <br />[global] 部份內容以下: <br />[global] <br />&#160;&#160;&#160;&#160; workgroup=WORKGROUP <br />&#160;&#160;&#160; serverstring=SambaServerVersion%v <br />&#160;&#160;&#160; security=user <br />&#160;&#160;&#160;&#160; passdbbackend=tdbsam <br />&#160;&#160;&#160; loadprinters=yes <br />&#160;&#160;&#160; cupsoptions=raw <br />而後加入如下內容: <br />[myshare] <br />comment=shareforusers <br />path=/samba <br />browseable=yes <br />writable=yes <br />public=no</p> <p>&#160;</p> <p>保存配置文件,建立目錄: <br />mkdir/samba <br />chmod777/samba <br />而後添加用戶。由於在[globa]中」passdbbackend=tdbsam」,因此要使用」pdbedit」 來增長 <br />用戶,注意添加的用戶必須在系統中存在。 <br />useradd user1user2 <br />pdbedit-auser1 #添加user1帳號,並定義其密碼 <br />pdbedit-auser2 <br />pdbedit-L#列出全部的帳號 <br />測試: <br />打開IE瀏覽器輸入file://IP/myshare/ 而後輸入用戶名和密碼</p> <p>&#160;</p> <p>3.使用linux訪問samba服務器 <br />Samba服務在linux下一樣能夠訪問。前提是你的linux安裝了samba-client軟件包。安裝完 <br />後就可使用smbclient命令了。 <br />smbclient//IP/共享名-U 用戶名</p> <p>如:[root@localhost]#smbclient//10.0.4.67/myshare/-Uuser1 <br />Password: <br />Domain=[LOCALHOST]OS=[Unix]Server=[Samba3.0.33-3.29.el5_6.2] <br />smb:\&gt; <br />出現如上所示的界面。能夠打一個」?」列出全部可使用的命令。經常使用的有cd,ls, rm,pwd,tar, <br />mkdir,chown,get,put等等,使用help+命令能夠打印該命令如何使用,其中get是下載, <br />put是上傳。 <br />另外的方式就是經過mount掛載了: <br />如: <br />mount –t cifs//10.0.4.67/myshare/mnt-ousername=user1,password=123456 <br />格式就是這樣,要指定-tcifs//IP/共享名本地掛載點-o後面跟username和password <br />掛載完後就能夠像使用本地的目錄同樣使用共享的目錄了。</p>linux

相關文章
相關標籤/搜索