歡迎您光臨本站 註冊首頁

菜鳥手冊之認識Samba及安裝配置

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  一、Samba基礎
  1、 簡介
  1).SMB協議
  SMB(Server Message
  Block,服務信息塊)協議可以看作是區域網上的共享文件/印表機的一種協議,它可以為網路內部的其它Windows和Linux機器提供文件系統、列印服務或是其他一些信息.
  SMB的工作原理是讓NetBIOS(Win95網路鄰居通信協議)與SMB這兩種協議運行在TCP/IP的通信協議上,且使用NetBIOS
  nameserver讓用戶的Linux機器可以在Windows的網路鄰居里被看到,所以就可以和Win95/NT主機在網路上相互溝通,共享文件與服務了.
  目前Microsoft正在開發一種新的文件和列印共享協議--CIFS(Common Internet Files
  System,通用網路文件協議),該協議支持TCP/IP和DNS等協議,能在www上支持文件和列印共享.在CIFS下伺服器實際上是DNS名,由主機名和域名組成.這種變化是從NetBIOS命令結構中分離出來的.目前CIFS還沒有得到廣泛的應用.現在在Linux和Win95/NT之間的文件共享注意還是SMB和NFS.
  
  2).什麼是Samba
  Samba是用來實現SMB的一種軟體,由澳大利亞的Andew Tridgell開發,是一種在Linux(Unix)環境下運行的免費軟體.
  通過使用Samba,Linux系統可以實現如下功能:
  文件服務和列印服務(在Linux和Win95/NT之間系統之間提供印表機和磁碟的共享)
  登陸伺服器,使用Windows客戶能註冊到網路上
  作為主要域控制器和域中成員的功能
  WINS伺服器以及瀏覽功能
  支持SSL(Secure Socket Layer)
  支持SWAT (Samba Web Administration Tool )
  Samba除了支持Linux(Unix)和Win95/NT之外,還支持DOS、IBM OS/2、Macintosh 等操作系統.
  
  在Samba的軟體包中所包括的組件參看錶1-1:
  
  表1-1 Samba軟體包的組成列表
  
  2、Samba的記錄文件
  Samba為smbd、nmbd和訪問Samba的客戶提供了下列記錄文件,分別記錄有關smbd、nmbd運行信息和每個客戶的訪問信息:
  記錄smbd 信息
  /var/log/samba/log.smb
  記錄nmbd信息
  /var/log/samba/log.nmb
  記錄客戶訪問信息
  /var/log/samba/log.%m
  
  3、啟用Samba伺服器
  Samba的運行包含兩個後台守護進程:smbd和nmbd,它們是Samba的核心,在全部時間內運行.nmbd程序是的通過企圖計算機可以瀏覽Linux伺服器.Smbd守護進程在SMB軟體包到達網上時對它們進行處理,並且為使用或共享它的資源與Linux進行協調.如果指定的是一個文件,該資源就是一個文件;而一個印表機請求就要求訪問一台印表機.實際上,在請求訪問印表機時,Smbd把要列印的信息存儲到印表機隊列中;在請求訪問一個文件時,Smbd把數據發到內核,將它存到磁碟上.


  你可以從inetd選擇啟動它們,但這種方法會使Samba變慢.建議使用下面命令可以啟動這兩個進程:
  /etc/rc.d/init.d/smb start
  /usr/sbin/samba start
  如果想要在系統啟動時自動啟動samba,可以使用/usr/sbin/turboservice命令,選中其中的"SMB (Windows)File
  Services".
  
  二、Samba配置及使用
  1、定製文件/etc/smb.conf
  在安裝完Samba后,還需要定製它的配置文件smb.conf,才能使Samba正常工作以符合要求.由於SMB是一個非常複雜的協議,所以配置Samba的工作也是比較繁瑣的,大約有超過170條配置項出現在smb.conf文件中.
  
  1).smb.conf的語法
  smb.conf文件有一個清晰的語法結構,與Windows的*.ini文件十分類似.如下所示:
  該文件被分成幾部分,每一部分都包括幾個參數,用來定義Samba輸出的共享及其詳細操作.
  
  文件被分隔成若干節,每一節都由一個被方括弧括起來的標識開始(例如,[global]、[home]、[printers]),每一個配置參數或是一個全局參數(影響或控制整個伺服器),或是一個服務參數(影響或控制伺服器提供的某項服務  ).
  global部分定義的參數用來控制Samba的總特性.除global部分外,每一部分都定義了一個專門的服務.
  你可以使用下面的語句來指定一個參數:
  name=VALUE
  name可以是一個單詞或者用空格隔開的多個單詞.VALUE可以是布爾值(ture或false;yes或no;1或0)、數字或字元串.
  註釋以分號開頭,可以單獨一行,也可以跟在一條語句之後.
  通過在一行的一個字元后加反斜杠""可以將一行分成多行.
  每一部分的名字和參數都不區分大小寫,例如,參數browseable=yes與browseable=YES是完全等價的
  
  2).smb.conf文件的功能
  smbd和nmbd這兩個守護進程啟動時(通常為系統引導時)讀配置文件smb.conf,這一配置文件向這兩個守護進程說明輸出什麼共享、共享輸出給誰以及如何進行輸出等等.
  安全問題是最重要的,所以你必須指定哪些計算機可以訪問這一共享,smb.conf文件可以很靈活的明確指定每一服務有哪些用戶可以訪問.隨著Linux網路的增大,這一控制越來越重要.
  
  3).smb.conf文件結構
  smb.conf文件主要包括三部分:
  global(全局)參數
  directory shares (目錄共享)部分--包括標準的[home]部分
  printer shares(列印共享)部分
  其中,global參數用來設置整個系統的規則;[home]部分和[printer]部分是服務的特定常式,services(服務)這一術語是網路客戶機共享或輸出的目錄和印表機的Samba術語.這些服務定義了哪些用戶可以訪問這些目錄和印表機以及如何訪問這些目錄和印表機.


  
  清單1-1給出了smb.conf文件的一個簡單的例子.
  清單1-1 smb.conf文件的一個簡單示例
  [global]
  netbios name = FRODO
  workgroup = UAB-TUCC
  server string = John Blair's Linux Box
  security = user
  printing = lprng
  log file = /var/log/samba
  lock directory = /var/lock/samba
  [homes]
  comment = Home Directory
  browseable = no
  read only = no
  [printers]
  browseable = no
  guest ok = yes
  printable = yes
  在 [global] 段中設置了主機名稱, 主機所在的工作組名稱和瀏覽時可看到的對本機的描述.安全參數告訴 Samba使用"用戶級別"的安全保護方式. SMB 有兩種安全模式: 共享級別, 將資源加密碼控制;用戶級別, 可以使用某一用戶的所有資源.
  這裡不能詳細解釋兩種方式的微妙差別, 但大部分情況下, 你會想用用戶級別安全控制.
  [global] 段中還定義了日誌文件目錄和鎖定文件的位置.日誌文件在解決故障和完善系統時是很有用的,鎖定文件可以阻止多個用戶同時修改相同的文件.
  [homes] 段中的設置控制了每一個用主目錄的共享許可權.comment 參數指定的字元串在你瀏覽本機資源時出現在指定資源的旁邊.
  browseable 參數控制一項服務是否能夠出現在網路資源瀏覽表中.這裡是一些非直覺的東西, browseable = no意味著這個目錄將在瀏覽時顯示為要驗證的用戶名稱. 舉例來說, 指定 browseable = no, 當我瀏覽這個 Samba 伺服器時,我將看到一個名稱為 cuckoo 的共享目錄.當指定 browseable = yes 時, 我將看到一個名為 homes 和 cuckoo的共享目錄.設置 read only = no 將允許通過驗證的用戶對主目錄有寫入的許可權. 但是, 如果他們的主目錄的 UNIX 許可權 不允許寫入,那麼他們就沒有寫的許可權. 無論 UNIX 的許可權怎樣, 設置 read only = yes 后, 他們的主目錄是只讀的.
  printing 命令描述了本地列印系統類型, 這可以讓 Samba 知道怎樣提交列印任務, 顯示列印隊列, 刪除列印任務和其它操作.
  如果列印系統是 Samba 所不知道的, 你必須在每次執行列印操作時指明命令.
  清單中[printing]一段配置允許任何能夠登錄到 Samba 伺服器的用戶使用 printcap 中出現的 每一台印表機. 正常情況下,如果使用用戶級別安全控制, guest ok = yes 並不能授權每一個用戶(使用系統). 每一個列印服務必須定義為 printable =yes.
  下面的一段配置片斷增加了一個命名為 public 的共享目錄, 直接對匿名FTP目錄有隻讀的 許可權. 你必須在客戶機上建立印表機驅動程序. 對於Windows 95 和 Windows NT 客戶機, 你可以使用printer name 和 printer driver命令自動建立列印驅動.


  
  [public]
  comment = Public FTP Directory
  path = /home/ftp/pub
  browseable = yes
  read only = yes
  這段描述並不是解釋一些微妙的主題,
  例如用戶級和共享級安全性的區別或者其它的授權認證主題.它僅僅讓我們看到了Samba這座冰山的一角.另一方面,這是一個良好的例子,從中我們可以了解產生一個簡單但可工作的smb.conf文件是多麼容易.
  下面,我們舉另一個例子說明如何通過Samba把Linux的印表機共享給Windows機器.
  為了共享Linux的印表機給Windows機器,必須確定Linux機器上的印表機已經設置好.如果能從Linux上列印,那麼設定Samba的印表機共享是很簡便的.只要根據自己的情況,對smb.conf文件有關列印的部分進行修改就可以了.在修改中唯一需要注意的是確保印表機的路徑要與/etc/printcap中的spool目錄相符合,然後就可以在Win95/NT上配置網路印表機了(關於如何在Win95/NT上配置網路印表機,本文不做介紹).
  
  4).標準smb.conf文件清單
  在Samba的軟體包里的example目錄中有一個預設的配置文件smb.conf.defaults.我們可以對它做適當修改後拷貝到你的安裝目錄下的lib目錄里,並改名為smb.conf.清單1-2是Samba系統提供的標準的配置文件.為方便讀者閱讀,本文翻譯了文件中的註釋並適當的添加了解釋.
  
  清單1-


[火星人 ] 菜鳥手冊之認識Samba及安裝配置已經有317次圍觀

http://coctec.com/docs/linux/show-post-56143.html