第六章

學藝錦囊

◎SAMBA服務原名是SMB(Server Message Block,服務器消息塊),它是一個網絡文件係統,用於Windows和Unix Like操作係統之間的文件共享服務。

◎SAMBA服務使用的通信協議有NetBIOS、NetBIOS over TCP/IP(簡稱NBT),現在也可以直接運行在TCP/IP協議之上。SAMBA服務使用了137、138和139三個端口。

◎NetBIOS是小型局域網使用的通信協議。NetBIOS網絡中的每台計算機用一個名稱來標識,稱為NetBIOS名,在實際通信時要把NetBIOS名解析到對應計算機的IP地址,這由SAMBA的nmbd服務來完成。

二、SAMBA服務器的常用變量%S:代表當前設置的參數,就是[]中的內容。

%m:代表客戶端的NetBIOS主機名稱。

%M:代表客戶端的Internet主機名稱,即HOSTNAME。

%L:代表SAMBA主機的NetBIOS名稱。

%H:代表用戶的主目錄。

%U:代表當前登錄用戶的名稱。

%G:代表登錄用戶的工作組名稱。

%h:代表SAMBA主機的Internet主機名稱,即HOSTNAME。

%I:代表客戶的IP地址。

%T:代表當前的日期和時間。

三、SAMBA服務器客戶訪問控製1.SAMBA客戶端的訪問控製選項(1)設置目錄讀寫。

read only = yes|no  yes為隻讀,no為讀寫

writable = yes|no yes為讀寫,no為隻讀

(2)設置能使用共享資源的用戶和用戶組。

valid users =賬戶名1, 賬戶名2,…,@ 用戶組名,… 用戶組名前加@以區分

(3)設置可寫共享資源的用戶和用戶組。

write list =賬戶名1, 賬戶名2,…,@ 用戶組名,…

(4)隱藏共享。

browseable = yes|no yes為客戶端可見,no為隱藏

(5)設置來賓賬戶的訪問。

public = yes|no yes為允許,no為禁止

guest ok = yes|no yes為允許,no為禁止

(6)指定允許訪問的客戶端。

hosts allow = ip地址|網絡號|域名|主機名

指定多個客戶端時用空格分隔,可使用通配符*、?、LOCAL

ALL代表所有的客戶端,EXCEPT表示除指定之外,接在網絡號後麵

hosts allow =172.30.0.123 172.21. hws.com vm 注意網絡號的寫法

(7)指定禁止訪問的客戶端。

hosts deny = ip地址|網絡號|域名|主機名 使用要求與hosts allow相同

2.管理SAMBA賬戶

[root@vm ~]smbpasswd [-adem] 賬戶名

不帶選項時,修改用戶登錄SAMBA的密碼。

-a:在smbpasswd文件添加一個新賬號。

-d:暫停smbpasswd文件中SAMBA賬戶的使用,其記錄中帶[]的字段首字符為D。

-e:與-d的作用相反,重新啟用SAMBA賬戶。

-m:賬戶名所指為機器賬戶(machine account),與在Windows域中工作有關。

四、SAMBA客戶端命令

1.使用Linux的SAMBA客戶端程序

(1)查看SAMBA服務器的共享資源。

[root@vm ~] smbclient -L \\服務器NetBIOS名 [-U 賬戶名[%密碼]]

-L:顯示服務器上的共享資源列表。

-U:指定登錄賬戶名和密碼,密碼與賬戶名之間以%分隔。

(2)訪問共享目錄。

登錄共享目錄後,呈現給客戶的是ftp命令操作界麵,可以使用ftp命令訪問共享目錄中的數據。

[root@vm ~] smbclient '\\服務器NetBIOS名\目錄共享名' [-U 賬戶名[%密碼]] [-W工作組名]

-W:指定網絡的工作組。

2.掛載SAMBA共享目錄到本地文件係統中

在本地文件係統中成功掛載SAMBA共享目錄後,就可以像訪問本地文件係統中的目錄那樣使用SAMBA共享目錄。命令中的共享路徑名必須用單引號('')括起來,因為\在Shell中有特殊用途,放在單引號中其將成為普通字符。

(1)使用smbmount。

[root@vm ~]smbmount '\\服務器NetBIOS名\目錄共享名' 掛載點 [-o 選項]

-o:設置驗證選項,選項之間由逗號(,)分隔,選項值用單引號定界,選項有:

username=登錄賬號,如username='hws'

password=登錄密碼,如password='111111'

codepage=語言文件,如codepage='cp936'

掛載點:是本地文件係統中的一個目錄,一般在/mnt目錄之下建立掛載點。

(2)使用支持smbfs的mount。

[root@vm ~]moun -t smbfs '\\服務器NetBIOS名\目錄共享名' 掛載點 [-o 選項]

-t:指定要掛載的文件係統格式,smbfs就是SAMBA這種網絡文件係統。

任務實施

一、配置實現SAMBA共享服務

SAMBA服務器的主要配置文件是/etc/samba/smb.conf,SAMBA服務的各種特性參數和共享目錄都在該文件中設置。配置SAMBA服務器的主要任務是服務器全局特性和共享目錄及屬性設置。

1.配置開放式SAMBA服務器

(1)配置SAMBA服務器。

[root@vm ~]vi /etc/samba/smb.conf

配置SAMBA服務器特性,一般格式為:屬性名=值

[global]

配置網絡工作組名稱,如果配置SAMBA服務器加入Windows域中,此處設置成

Windows域的NetBIOS名稱

workgroup = hws

設置SAMBA服務器描述信息

server string = Linux Samba Server

配置SAMBA服務器主機的NetBIOS名稱。如果沒有設置,該名稱以主機名代替

netbios name = smbsrv

設置SMB支持的語言代碼頁,936為簡體中文,950為繁體中文,默認是850

client code page = 936

設置日誌文件的目錄及文件名最大容量,默認單位是KB。%m是SAMBA服務

器定義的變量,代表客戶端計算機的NetBIOS主機名

lod files = /var/log/samba/log.%m

設置日誌文件的最大容量,默認單位是KB。設置容量為0則不限製文件大小

max log size = 500

設置SAMBA服務類型,包括share、user、server、domain、ads

security = share

設置連接特性、延遲、收發緩衝區大小

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SENDBUF=8192

在多網卡的主機上設置用於提供SAMBA服務的網卡

interfaces=192.168.0.50

配置共享目錄及特性參數,[]中是共享目錄的共享名,在客戶端瀏覽時的顯示名是

[pubs]

共享目錄的描述信息

comment = department’s share

設置服務器中實際要共享的目錄,注意文件係統中該目錄的權限設置

path = /home/ourdocs

設置共享目錄是否為隻讀。yes為隻讀,no為可讀寫

read only = no

是否支持來賓賬戶訪問,yes為允許,no為不允許

public = yes

設置共享目錄是否可寫,yes為讀寫,no為隻讀

writable =yes

設置共享目錄是否在客戶端瀏覽時可見,yes為可見,no為隱藏

browseable = yes

設置在共享目錄中新建文件的默認權限

create mode = 0644

設置在共享目錄中新建文件夾的默認權限

directory mode = 0775

設置來賓賬戶是否可以登錄,yes為允許,no為不允許,與public作用相似guest ok = yes

(2)重啟SAMBA服務器。

[root@vm ~]service smb restart

或重新加載SAMBA服務器

[root@vm ~]service smb reload

2.配置需要用戶登錄的SAMBA服務器

(1)配置SAMBA主機。

[root@vm ~]vi /etc/samba/smb.conf

[global]

workgroup = mygrp

server string = Linux Samba Server

netbios name = smbsrv

client code page = 936

lod files = /var/log/samba/log.%m

max log size = 500

設置SAMBA服務類型為user 即可

security = user

設置是否對賬號密碼加密。yes為加密,no為不加密

encrypt passwords = yes

指定SAMBA賬戶密碼文件的存儲路徑和文件名

smb passwd file = /ect/samba/smbpasswd

設置SAMBA賬戶的虛擬賬號映射文件