歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Samba使用和管理詳細指南完全分析

Samba使用和管理詳細指南完全分析

日期:2017/2/27 9:29:57   编辑:更多Linux
  Windows 最令人感到方便的特色莫過於『網上鄰居』的檔案分享功能,有了這項功能後,使得局域網絡裡資料的傳遞與分享得以落實。以往在 Linux 的世界裡其實也有 NFS 可以在 Unix Like 的操作系統下做檔案分享,但是與 Windows 作業環境的整合還是缺乏溝通的橋梁。    Samba Server 建立了 Linux 與 Windows 環境的溝通管道,也可以做為Print Server提供Windows 遠程聯機打印;若是使用 Samba Server 搭配 Apache Web Server,可在 Windows 環境下藉由『網上鄰居』登入 Linux 主機裡使用者的個人帳號放置網頁目錄(當然是在局域網絡內才行),有了這項功能,編輯個人網頁就如同在本機操作一般方便。除此之外,Samba Server 也可以完全取代 NT/2000 PDC(Primary Domain Controler)成為 NT/2000 網域主控者管理 NT/2000 網域機群,當然,Samba 也可以將目錄、檔案分享給其它 Unix Like、Mac、OS/2 的機器使用,應用層面可以說是相當廣闊,更令人驚訝的是 Samba Server 也可做為WINS Server,若配合 DHCP Server 更可以管理大型 NT/2000 網域,想想!這個集合眾多優點的服務器,是不是會對不同機種的操作系統工作環境在整合上有著極大的助益呢?    Samba 可以定位為一套功能極為強大的檔案服務器軟件,所謂檔案服務器就是將檔案伺服主機上的目錄分享出來,讓您可以透過網絡對分享出來的目錄裡的檔案,做執行、讀取、寫入等動作。基本上 NT/2000 的網域是使用 NetBEUI 做計算機命名服務,使用廣播封包來偵測網絡上有哪些計算機、哪些目錄提供資源共享,而 Samba 與UNIX主機間的溝通(如目錄、檔案分享)是透過 TCP/IP 協議達成任務,Samba 若要與NT網域做溝通,透過TCP/IP當然是行不通的,只好使用 NetBIOS 對NT網域做廣播,讓 Windows 機器能夠認識它,進而成為NT網域成員;因此 Samba 是使用 smbd Daemon 透過 TCP/IP 聯系 Unix Like 主機,而使用 nmbd Daemon 透過 NetBIOS 對 NT/2000 網域做聯系,也就是說 Samba 使用兩種機制達成資源共享的目的。    注:smbd Daemon主要用來處理檔案分享和打印分享服務;nmbd Daemon則用來處理WINS 名稱解析服務及NT Browser Service(即網上鄰居)。    要使用 Samba Server 相當容易,在安裝好 Redhat 後,只要設定好工作群組,激活Samba Server 後就可以正常運作,您可以立即在 Windows 下的『網上鄰居』裡看到執行Samba服務的Linux 主機名稱。    samba-2.0.7-21ssl    samba-common-2.0.7-21ssl    samba-client-2.0.7-21ssl(samba 所需要的套件,請隨時更新!!)    想讓開機自動激活 samba 嗎?    #chkconfig --level 345 smb on    或是手動激活    #/etc/rc.d/init.d/smb start    以上是 samba 的簡單設定,接著介紹 samba 的設定及其它應用    當安裝完 samba 套件後,也立即擁有以下的 samba 工具:    smbclient:利用這個工具可連接其它 Unix like 的 Samba Server,或是連接 Windows 機器,以取得檔案分享服務。    testparm :這個工具可讓您測試 smb.conf 組態檔定義是否正確。    testprns :這個工具可讓您測試定義在 printcap 檔裡的列表機。    smbstatus:這個工具可用來顯示目前 client 端連接到 Samba Server 的聯機狀況。    nmblookup:這個工具可使用 NT/2000 網域內的主機名稱查詢出對應的 IP 地址。    smbpasswd:這個工具可用來建立、變更登入到 Samba server 的加密密碼。    swat:這個工具讓您可使用 web接口(如:IE、Netscape)對Samba Server做組態設定。    先確定在 /etc/services 檔案裡面這些句子沒有被批注掉﹕    netbios-dgm 138/tcp # NETBIOS Datagram Service    netbios-dgm 138/udp    netbios-ssn 139/tcp # NETBIOS session service    netbios-ssn 139/udp    然後是建立 /etc/lmhosts 檔案(如果它不存在的話)﹐建立起各主機的對應。我們只需將 MS Winndows 主機對應建立起來則可﹐但一定要包括作為 SAMBA 服務器的 Linux 主機本身﹕    vi /etc/lmhosts    192.168.0.17 redhat52    192.168.0.15 PII266    192.168.0.12 nt4ser2    192.168.0.22 redhat62    192.168.0.16 w2000ad    然後是修改 /etc/samba/smb.conf 這個檔案    ########################################################    設定Samba的組態檔最基本可分為三個階段:Server基本設定、使用者home目錄的設定、目錄分享設定。至於「共享列表機設定」則是當您有需要時再做設定。若是在Samba 的組態設定檔/etc/smb.conf檔裡做設定,則是針對[global]、[homes]、[分享目錄]三大項目做設定。    vi /etc/samba/smb.conf    若是在etc/smb.conf檔裡做設定,則是在[global]項目裡設定如下:    [global]    workgroup = MYGROUP ;不分大小寫    unix passWord sync = Yes    設定 Linux 與 samba 使用相同的密碼    domain master = yes    設定 samba 成為 PDC (網域主控者),注意:若是將Samba設定為獨立服務器,則無須設定此項。    client code page = 950    如果想使用者能看到中文文件名稱﹐可以將這行加進 [global] 設定中    [homes]    browseable = yes    writable = yes    public = yes    write list = @staff    samba 內定帳號擁有者可對帳號目錄做讀寫動作,若想讓某些使用者也有權利對此目錄做寫入動作時,請在「Users」卷標的「write list」字段裡輸入其它使用者名稱,如:abc、test、working。    所謂的使用者home目錄是指,以使用者帳號登入 Samba Server 後個人所擁有的帳號目錄,如:以帳號 root 登入後,內定的個人目錄是 /root。一般而言,對「使用者home目錄的設定」著重於是否將此個人目錄分享出來及設定存取的權限,其余項目大抵上是無需設定。    注意:若您選擇了「Public Access」、「Writable」兩個選項,並不代表所有的使用者皆有權利對您所分享的home目錄下的檔案具有寫入權,還得視檔案原來在Linux下的權限設定,例如,檔案權限為rwxr-xr-x(chmod 755),表示只有擁有者具可寫入權,此點務必留意。    [works]    comment = share works    browseable = yes    path = /works    public = yes    writable = yes    目錄分享設定    使用 Samba 最大的用途當然是將特定的目錄分享出去,分享目錄的原則不外乎是讀寫權限及分享對象,把握此原則就可很迅速的設定好分享目錄    用 testparm 來測試一下smb.conf的語法是否正確,或是使用 smbclient -L (computer_name)    重新激活 SAMBA    /etc/rc.d/init.d/smb restart    ########################################################3    將 Samba 做為WINS Server    Samba 最大的功用除了做 file Server 外,還可以做 WINS Server。Wins Server最大的好處是可在 NT/2000 網域內做名稱解析,傳統上在 Internet 上做 FQDN(Full Quality Domain Name)與 IP address 之間的轉換是藉由 DNS 做解析,但在局域網絡裡尤其是 NT/2000 網域,當您使用 NT/2000 的 WINS Server 與 NT/2000 的 DNS 做配搭時,假設有一台主機名稱叫做 abc,所屬領域是 test.com.tw,IP地址是192.168.0.229,目前此部主機尚未在 DNS 上注冊,但是在DNS 上激活正反查都可藉由 WINS 解析,當您使用 nslookup 查詢 abc 主機時,您會發現可解析出 192.168.0.229,並且觀察 DNS 上正查區域內,DNS自動將 abc 以A資源紀錄指定 IP 192.168.0.229,而反查區域內,DNS 自動將229.0.168.192.in-addr.arpa 指到 abc.test.com.tw,這就是 WINS 的好處。    以往在 NT/2000 網域內使用 DNS+WINS Server 可免去在 DNS 上登錄主機記錄,若再搭配 DHCP Server 那麼連 Client 端主機的 IP 也免輸入,一切由 DHCP Server分配動態 IP ,再由 DNS+WINS Server 自動登錄主機 FQDN 與 IP 解析關系,這個簡單、易用組織網域的方法,如今也可以由 DNS+Linux下的Samba+Linux下的DHCP來取代,因為 Samba 可擔任 WINS Server 或指定 WINS Server做網域名稱解析。假設目前欲做 WINS + DHCP 的 Linux主機IP為192.168.0.229,其設定方式如下:    首先確定已激活 DNS Server,並且在 DNS 裡啟用正、反查皆可透過 WINS 做解析。    以下設定Samba為Wins Server    wins server = 192.168.0.229    設定完成後,可使用 nmblookup 查詢名稱解析,假設目前有一主機其名稱為 abc,使用動態分配 IP 聯機,所配得的IP地址是192.168.0.100,那麼當您使用nmblookup ASP做名稱查詢時,則出現下列畫面:    [root@abc testing]# nmblookup abc    192.168.1.100 abc<00>    當然,使用 DNS + DHCP + WINS 除了可分配動態 IP 外,『網上鄰居』、區域內主機 FQDN 與 IP 的對應關系皆可正常運作。    Samba 除了可做為 File Server、Wins Server 外,還可做為 Printer Server,設定方法其為簡單:    首先使用 Redhat 的print tool,




Copyright © Linux教程網 All Rights Reserved