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 && 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' >> /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的日志預設存放在'<Samba 安裝目錄>/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,如需轉載請自行聯系原作者