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

相关文章
相关标签/搜索