Linux下Samba的配置

1、Samba 介紹
一、SMB協議
SMB (Server Message Block,服務信息塊) 協議,是局域網上的共享文件/打印機的一種協議,它能夠爲網絡內部的其餘windows和linux 機器提供文件系統、打印服務。SMB的工做原理是讓NetBIOS和SMB運行在TCP/IP之上,且使用NetBIOS的nameserver讓 linux機器能夠在windows 網絡鄰居里被瀏覽。linux

二、Samba
Samba是用來實現SMB的一種軟件,由澳大利亞的Andew Tridgell開發,是一種在Linux 環境裏運行的自由軟件。它能夠完成以下功能:
文件服務和打印服務,實現Windows和Linux的資源共享。
登陸服務器,能夠做爲局域網的服務器。
做爲主域控制器。
WINS服務器。
支持SSL。
支持SWAT。ios

2、 Samba服務
一、 核心進程
Samba 有兩個守護進程:smbd 和nmbd,它們是Samba的核心進程。nmbd進程使其餘計算機瀏覽Linux服務器,Smbd進程在SMB服務請求到達時對它們進行處理,而且爲使用或共享的資源進行協調。windows

二、 啓動服務
Samba 有兩種啓動方式:Daemon形式和Inetd形式。
(1)Daemon形式 創建啓動腳本:rc.samba
smbd -D -d1
nmbd -D -d1安全

-D 表示以Daemon形式執行;-d1 表示除錯記錄級別
執行腳本文件rc.samba服務器

(2)Inetd形式
設置文件:/etc/services
netbios -ssn 139/ tcp
netbios -ns 137/ udp網絡

設置文件:/etc/inetd.conf
netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios -ns dgram udp wait root /usr/sbin/nmbd nmbddom

重啓動Inetd daemon
# kill -HUP 1socket

三、 客戶工具 smbclient
Smbclient命令用來存取遠程Samba服務器上的資源。其命令形式與ftp類似。
命令語法是:#smbclient [password] [option]
(1) 解釋:servicename是要鏈接的資源名稱,資源名稱的形式以下:
//server/service server 是遠程服務器的NetBIOS名字,對於windows服務器而言,就是出如今網上鄰居中的名字。
Service是各server所提供的資源的名字。
pssword 是存取該資源所需的口令
option 各類命令選項,其中 -L 用於列出遠程服務器提供的全部資源
-I 指定遠程服務器的IP地址。此時,servicesname 中的NetBIOS名部分將被忽略。tcp

(2)多種smbclient命令:
執行smbclient命令成功後,進入smbclient環境,出現提示符: smb:/>
這裏有許多命令和ftp命令類似,如cd 、lcd、get、megt、put、mput等。經過這些命令,咱們能夠訪問遠程主機的共享資源。工具

四、 Samba系統裝載與卸載
(1) 裝載其餘主機的資源
咱們能夠利用Samba提供的smbmount命令,裝載其餘主機的共享資源。
Smbmount的命令語法:# smbmount
其中 servicename 是資源名,mount-point是安裝點。

例如: # smbmount "//server/tmp" -c ' mount /mnt'
表示:把名字爲「server」的計算機上的共享資源「tmp」的內容裝載到本地的 /mnt
目錄下。

(2) 卸載資源
卸載一個已經裝載的SMB文件系統,使用smbunmount命令,同時指定要卸載的裝載點。 例如: # smbunmount / mnt

3、Samba配置
Samba組件的配置文件是 /etc/smb.conf ,該文件幾乎包含了Samba系統程序運行時所需的全部配置信息。

一、 配置選項
配置文件中有比較重要的幾個節:[gloabal]、[homes]、[printers],下面分別給與說明。
(1)[gloabal]節 在全局參數中,參數的設置直接影響samba系統。
NetBIOS name:設置主機名稱
Workgroup:用來指定主機所在網絡上所屬的NT域名或者工做組名稱。格式是
Workgroup= Nt Domain-Name or workgroup-name
Server string:用來設置本機描述,缺省是 Samba Server
Host Allow:它容許設置哪些領域的機器能夠訪問它的Samba服務器
Load printers:容許自動加載打印機列表,而不須要單獨設置每一臺打印機。
Interface:配置Samba使用多個網絡界面。
Domain controller: 僅當網絡中有一臺在安裝時設置爲主域控制器時使用此選項。
Security: 設置安全參數,定義安全模式。Samba 的安全模式有四種
Share、 user、 server 、domain
encrypt passwords 、smb passwd file:用於適用加密口令。

下面是一段參數配置例子:
[global]
smb passwd file = /etc/smbpasswd
remote announce = 172.18.158.234 172.18.153.55 172.18.153.255
dns proxy = no
security = user
encrypt passwords = yes
server string = Ftp Server
workgroup = turing
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
log file = /var/log/samba/log.%m
load printers = yes
guest account = dscan
remote browse sync = 172.18.158.234 172.18.153.55 172.18.153.255
printcap name = /etc/printcap
max log size = 50
hosts allow = 172.18.158. 172.18.153. 127.
... ...

(2)[homes]節 全部使用者的home目錄
當任何一個客戶訪問Samba服務器時,在網絡資源中都能出現本身的home目錄共享。其配置以下:
[homes]
comment = Hnnw Directories
browseable = no
writable = yes
(3)用戶共享目錄
用來指定某一特定用戶組或者用戶擁有訪問權限的目錄配置,下列參數配置僅有hnnw組的用戶有權訪問目錄/home/samba。
[public]
comment = Public Hnnw
path = /home/samba
public = yes
writable = yes
printable = no
write list = @hnnw

二、 用戶映射
全局參數「username map」用來控制用戶映射,它容許管理員指定一個映射文件,該文件包含了在客戶機和服務器之間進行用戶映射的信息。
如:username map= /etc/smbuser
用戶映射常常在windows 和linux 主機間進行。 兩個系統擁有不一樣的用戶帳號,用戶映射的目的是將不一樣的用戶映射成爲一個用戶,便於共享文件。
下面是一個映射文件的例子:
# Map Windows admin to root
root=admin administrator
;Map the member of developer to studio
studio = @developer

等號左邊是單獨的Linux帳號,等號右邊是要映射的帳號列表。
服務器逐行分析映射文件,若是提供的帳號和某行有右側列表中的帳號匹配,就把它
替換爲等號左邊的帳號。

三、 使用加密口令
新版本的windows 95以及windows9八、winnt(sp3以上版本),在網絡傳輸中僅傳遞加密口令做爲用戶認證的信息。這類客戶機和不支持加密口令而且以user 安全級運行的Samba服務器通信時,會出現故障。爲了正常的通信,samba服務器使用加密口令。下面討論如何在samba中使用加密口令。
(1) 口令文件 /etc/smbpasswd
爲了使用加密口令,samba 須要一份口令文件(/etc/smbpasswd),而且該文件應該和Linux的口令文件(/etc/passwd)保持同步。下面是生成文件命令:

# cat /etc/password | mksmbpasswd > /etc/smbpasswd

smbpasswd 是須要的口令文件,其權限是0600,全部者是root
smbpasswd和passwd文件的記錄對應,密碼部分不一樣。密碼有兩部分組成,每部分
是32個"X",前部分用於和Lanman通信,後部分和Windows NT通信。
Root用戶可使用smbpasswd命令爲每一個用戶設定samba口令。

(2) 修改配置文件 /etc/smb.conf
要使Samba使用加密口令,須要在配置文件smb.conf中加入以下參數。
Encrypt passwords=yes
Smb passwd file= /etc/smbpasswd
第一行通知samba使用加密口令,第二行給出口令文件的位置。

(3) 重啓動samba 服務。
修改完配置文件後,須要從新啓動samba服務,可用以下命令:
# /usr/sbin/samba restart

四、windows系統中的明碼口令使用
Samba系統中使用明碼口令做爲鏈接SMB的默認設置。當SMB服務器對協商協議作出響應時,響應信息包含了一位,以說明服務器是否支持詢問或者響應加 密。隨着win95的網絡重定向更新程序的發佈,Microsoft修改了默認值,這樣,windows客戶就不會向不支持加密的服務器發送明碼口令了。
在這種狀況下,有兩種解決辦法:
(1)設置Samba服務器使用加密口令
(2)讓windows客戶使用明碼口令
這裏選用第2種解決辦法,經過修改註冊表來實現。下面對win95/win9八、winnt用戶分別給與說明。
(1)win98/win95系統用戶
在註冊表中加入下列註冊字,並從新啓動機器:
[HKLM/System/CurrentCntrolSet/Services/VxD/VNETSUP]
「EnablePlainTextPAssword」= dword:00000001

(2)Winnt系統用戶
修改註冊表,加入下列註冊表項,並從新啓動機器:
[HKLM/System/CurrentCntrolSet/Services/Rdr/Parameters]
「EnablePlainTextPAssword」= dword:00000001

4、Samba應用
一、 windows資源共享與使用
(1)windows資源共享
a. 使用TCP/IP協議做爲網絡默認通信協議
b. 修改網絡配置,設置文件和打印機共享。
c. 設置好計算機名和所屬工做組
d.共享系統資源

(2)在windows系統中使用Linux共享資源
a. 登陸進入windows網絡
b. 經過網上鄰居查看、使用共享資源。
c. 命令行下工具使用共享資源
使用命令行下的net.txt工具來查看、使用共享資源:
net use 命令的語法: c:>net use X://servername/sharename
在這裏,X:是共享的驅動器盤符,//servername/sharename是到共享的UNC的網絡路徑。
例如: c:/>net use h://hey/myfile
表示:將hey機器上的myfile共享資源映射爲本地的h盤

二、Linux資源共享與使用
(1)將Linux 的資源共享
經過編輯Samba配置文件,添加須要共享的Linux資源。同時能夠設定訪問此資源的用戶羣及其訪問權限。下面是一段例子,將本機的 /public/data 目錄共享,全部人都有讀寫權限。
[data]
comment = Public Data
path = /public/data
public = yes
writable = yes
printable = no

(2)在Linux中使用共享資源
可使用smbclient命令,訪問全部的Samba資源。具體使用方法見前述。

5、Samba應用程序
smbclient :訪問全部共享資源
smbstatus: 列出當前全部的samba鏈接狀態
smbpasswd:修改samba用戶口令、增長samba用戶。
Nmblookup:用於查詢主機的NetBIOS名,並將其映射爲IP地址
Testparam: 用於檢查配置文件中的參數設置是否正確

 

 

 

原文:http://blog.csdn.net/biach/article/details/1768154

相關文章
相關標籤/搜索