第六章
學藝錦囊
◎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賬戶的虛擬賬號映射文件