天天看點

十二、samba伺服器配置和管理

12.1、Samba簡介

  Linux和Windows是兩種無論在風格還是在技術上都完全不同的作業系統,它們是兩個對立的陣形。各自都擁有自己的使用者群和市場。但是,要實作這兩種系統之間的資源共享,則需要使用Samba。Samba采用的是C/S工作模式,通過它可以将一台Linux系統主機配置為Samba伺服器,而其他安裝和使用了SMB協定的計算機可以通過Samba服務與Linux實作檔案和列印機的共享。

  Samba服務的安裝可以通過yum指令安裝,也可以通過源代碼安裝,為了能夠擷取最新版的Samba軟體,可以從其官網https://www.samba.org/上下載下傳該軟體的源代碼安裝包。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<code>[root@localhost home]</code><code># wget https://download.samba.org/pub/samba/stable/samba-4.6.5.tar.gz </code>

<code>[root@localhost home]</code><code># tar xf samba-4.6.5.tar.gz</code>

<code>[root@localhost home]</code><code># cd samba-4.6.5</code>

<code>[root@localhost samba-4.6.5]</code><code># ./configure</code>

<code>[root@localhost samba-4.6.5]</code><code># make &amp;&amp; make install</code>

<code>[root@localhost samba-4.6.5]</code><code># cp /home/samba-4.6.5/packaging/LSB/smb.conf  /usr/local/samba/etc/        #複制配置檔案</code>

<code>[root@localhost samba-4.6.5]</code><code># echo '/usr/local/samba/lib' &gt;&gt; /etc/ld.so.conf  </code>

<code>[root@localhost samba-4.6.5]</code><code># ldconfig                      #添加庫檔案到系統</code>

<code>[root@localhost samba-4.6.5]</code><code># grep 'netbios' /etc/services  #確定檔案中有這些内容</code>

<code>netbios-ns      137</code><code>/tcp</code>                         <code># NETBIOS Name Service</code>

<code>netbios-ns      137</code><code>/udp</code>

<code>netbios-dgm     138</code><code>/tcp</code>                         <code># NETBIOS Datagram Service</code>

<code>netbios-dgm     138</code><code>/udp</code>

<code>netbios-ssn     139</code><code>/tcp</code>                         <code># NETBIOS session service</code>

<code>netbios-ssn     139</code><code>/udp</code>

啟動和關閉Samba

  Samba伺服器包括smbd和nmbd兩個程序,它們分别是Samba的SMB(Service Message Block)服務的守護程序和NetBIOS服務守護程序。要使Samba伺服器正常運作,必須要同時啟動這兩個程序,其作用分别為:

  smbd:Samba的SMB服務守護程序,使用SMB協定與客戶進行連接配接,完成使用者認證、權限管理和檔案共享任務。

  nmbd:NetBIOS名字服務的守護程序,可以幫助用戶端定位伺服器和域,相當于Windows NT中的WINS伺服器。

<code>[root@localhost sbin]</code><code># /usr/local/samba/sbin/nmbd -D   #啟動Samba</code>

<code>[root@localhost sbin]</code><code># /usr/local/samba/sbin/smbd -D</code>

<code>[root@localhost samba]</code><code># ps -ef | grep nmbd             #檢視程序是否啟動</code>

<code>root     35891     1  0 18:02 ?        00:00:00 </code><code>/usr/local/samba/sbin/nmbd</code> <code>-D</code>

<code>root     35899  1305  0 18:02 pts</code><code>/0</code>    <code>00:00:00 </code><code>grep</code> <code>nmbd</code>

<code>[root@localhost samba]</code><code># ps -ef | grep smbd</code>

<code>root     35893     1  0 18:02 ?        00:00:00 </code><code>/usr/local/samba/sbin/smbd</code> <code>-D</code>

<code>root     35894 35893  0 18:02 ?        00:00:00 </code><code>/usr/local/samba/sbin/smbd</code> <code>-D</code>

<code>root     35895 35893  0 18:02 ?        00:00:00 </code><code>/usr/local/samba/sbin/smbd</code> <code>-D</code>

<code>root     35897 35893  0 18:02 ?        00:00:00 </code><code>/usr/local/samba/sbin/smbd</code> <code>-D</code>

<code>root     35901  1305  0 18:02 pts</code><code>/0</code>    <code>00:00:00 </code><code>grep</code> <code>smbd</code>

12.2、Samba伺服器基本配置

  Samba的配置更改主要通過修改其主配置檔案smb.conf來完成,該配置檔案由全局設定和共享定義兩部分組成。檔案更改後不會立刻生效,使用者需要重新開機Samba伺服器或執行相應的指令重載配置檔案使之生效

smb.conf配置檔案

  smb.conf是Samba的主配置檔案,包括全局設定和共享定義。其中全局設定定義影響整個Samba系統運作的全局選項,用于設定整個系統的規則;共享定義則是對系統中的共享資源進行定義,該部分可以由多個段組成,常見的包括:使用者主目錄段,共享目錄段和列印段,每個段中可以再定義詳細的共享選項。

全局設定選項

選項名稱

說明

netbios name

設定NetBIOS名稱,預設為伺服器主機名

workgroup

設定Samba伺服器所屬的工作組名稱

server string

設定samba伺服器的說明資訊

interfaces

bind interfaces only

如果伺服器有多個IP位址,可以使用interfaces選項把IP位址列出來。如果bind interfaces only設定為yes,則表示

Samba将綁定interfaces選項所設定的IP位址

hosts allow

hosts deny

hosts allow指定允許通路該Samba伺服器的用戶端清單

hosts deny指定拒絕通路用戶端清單

printcap

設定[printers]段中所使用的列印機配置檔案

load printers

啟用該選項後将自動共享printcap name所指定的配置檔案中的所有列印機

printing

設定列印機的類型

guest account

指定samba中使用的guest帳号,預設nobody

wins server

指定wins伺服器的ipdizhi或主機名

wins support

設定samba伺服器是否作為wins伺服器

wins proxy

設定是否啟用WINS代理功能

dns proxy

設定是否啟用DNS代理功能

username map

指定使用者映射檔案的位置

共享選項

  共享目錄,在該段中指定了一個通過samba進行共享的目錄,定義共享目錄的各種設定。要通過Samba共享伺服器上的目錄/home/samba,共享名為share,使用者對該目錄隻能讀不能寫入。

<code>[share]                        </code><code>#共享目錄的共享名</code>

<code>   </code><code>comment = For testing only  </code><code>#共享目錄的說明資訊</code>

<code>   </code><code>path = </code><code>/home/samba</code>          <code>#指定共享目錄</code>

<code>   </code><code>read</code> <code>only = </code><code>yes</code>             <code>#該共享目錄是隻讀</code>

  使用者主目錄,使用[home]來标示,定義使用者對其主目錄的通路設定。

<code>[home]</code>

<code>   </code><code>comment = Home Directories      </code><code>#注釋資訊</code>

<code>   </code><code>browseable = no                 </code><code>#不可浏覽</code>

<code>   </code><code>writable = </code><code>yes</code>                  <code>#可寫</code>

<code>   </code><code>valid </code><code>users</code> <code>= mary fred         </code><code>#有效使用者清單</code>

<code>   </code><code>create mode =0664               </code><code>#權限模式</code>

<code>   </code><code>directory mode = 0775           </code><code>#目錄模式</code>

  列印機,共享列印機是Samba伺服器的常見應用,使用Samba共享列印機可以有效的節約硬體資源。

<code>printcap</code> <code>name = </code><code>/etc/printcap</code>   <code>#指定系統中列印機配置檔案位置</code>

<code>load printers = </code><code>yes</code>             <code>#指定自動共享/etc/printcap檔案中設定列印機</code>

<code>printing = cups                 </code><code>#指定達應急類型</code>

<code>[printers]</code>

<code>   </code><code>comment = All Printers       </code><code>#注釋資訊</code>

<code>   </code><code>path = </code><code>/var/spool/samba</code>      <code>#指定列印機池</code>

<code>   </code><code>browseable = no              </code><code>#不可浏覽</code>

<code>   </code><code>public = </code><code>yes</code>                 <code>#指定允許guest帳号使用列印機</code>

<code>   </code><code>printable = </code><code>yes</code>              <code>#允許使用該列印機列印</code>

<b>Samba使用者管理</b>

  Samba的使用者是與作業系統使用者聯系在一起,在建立Samba使用者前,必須先添加一個與之同名的作業系統使用者,但是兩者的密碼可以不相同。Samba使用者通過smbpasswd指令進行管理,其指令格式為:

<code>smbpasswd [options]  [username]</code>

常用選項:

-h:顯示指令幫助資訊

-a:添加使用者

-d:禁用某個使用者

-e:啟用某個使用者

-n:設定使用者密碼為空

-x:删除某個使用者

  使用者映射,為防止Samba使用者通過Samba帳号來猜測作業系統使用者的資訊以及提供靈活的使用者管理方法,是以就出現Samba使用者映射,映射的賬戶不需要建立。實作使用者映射的方法:

  1、編輯smb.conf在[global]部分添加使用者映射檔案

<code>username map = </code><code>/etc/samba/smbusers</code>

  2、手工建立使用者映射檔案/etc/samba/smbusers,該檔案格式為:

<code>#Samba使用者賬号 = 需要映射的賬号清單</code>

<code>root = administrator admin</code>

<code>nobody = guest</code>

<code>share = jim jack</code>

 3、重新開機samba伺服器

12.3、日志設定

  Samba的日志預設存放在'&lt;Samba 安裝目錄&gt;/var/'目錄下,其中smbd程序日志為log.smbd,nmbd程序日志為log.nmbd。使用者也可以設定Samba所提供的日志選項。在smb.conf配置檔案中可以設定日志的存放位置與格式:

<code>log </code><code>file</code> <code>= </code><code>/var/log/samba/log</code><code>.%m</code>

  其中,%m是Samba配置檔案保留變量,表示用戶端的NetBIOS,常見保留變量有:

變量

%a

用戶端架構

%d

目前伺服器程序的程序号

%D

使用者的WinNT域

%G

登入使用者的主使用者組

%H

使用者的主目錄

%h

Samba伺服器的主機名

%I

用戶端的IP位址

%j

列印任務的任務号

%L

Samba伺服器的NetBIOS名稱

%M

用戶端的主機名稱

%m

用戶端的NetBIOS名稱

%p

列印的檔案名稱

%S

目前共享的名稱

%T

目前的日期和時間

%v

Samba版本号

%$name

環境變量name的變量

本文轉自 夢想成大牛 51CTO部落格,原文連結:http://blog.51cto.com/yinsuifeng/1934835,如需轉載請自行聯系原作者

繼續閱讀