首页 > 代码库 > Linux下Samba的配置
Linux下Samba的配置
前言:
为了实现windows 和 Linux以及其它操作系统之间的资源共享,软件商推出nfs 和samba两种解决方案。因为市场上缺乏象pc-nfs那样的client工具,使得Linux和windows的资源共享变得复杂。Samba的出现攻克了 这一问题,它以其简洁、有用、灵活配置的特点受到越来越多人们的广泛关注。 |
Windows利用SMB协议来实现操作系统间文件和打印机共享,而Samba本身具备SMB协议,它实现局域网内和Windows系列计算机的资源共享。 |
本文就Samba在Linux系统下的配置为重点,讨论局域网内windows 与 Linux 的资源共享。 |
|
一、Samba 介绍 |
1、SMB协议 |
SMB (Server Message Block,服务信息块) 协议,是局域网上的共享文件/打印机的一种协议,它能够为网络内部的其它windows和linux 机器提供文件系统、打印服务。SMB的工作原理是让NetBIOS和SMB执行在TCP/IP之上,且使用NetBIOS的nameserver让 linux机器能够在windows 网络邻居里被浏览。 |
|
2、Samba |
Samba是用来实现SMB的一种软件,由澳大利亚的Andew Tridgell开发,是一种在Linux 环境里执行的自由软件。它能够完毕例如以下功能: |
文件服务和打印服务,实现Windows和Linux的资源共享。 |
登录server,能够作为局域网的server。 |
作为主域控制器。 |
WINSserver。 |
支持SSL。 |
支持SWAT。 |
|
二、 Samba服务 |
1、 核心进程 |
Samba 有两个守护进程:smbd 和nmbd,它们是Samba的核心进程。nmbd进程使其它计算机浏览Linuxserver,Smbd进程在SMB服务请求到达时对它们进行处理,而且为使用或共享的资源进行协调。 |
|
2、 启动服务 |
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 nmbd |
|
重新启动动Inetd daemon |
# kill -HUP 1 |
|
3、 客户工具 smbclient |
Smbclient命令用来存取远程Sambaserver上的资源。其命令形式与ftp类似。 |
命令语法是:#smbclient |
(1) 解释:servicename是要连接的资源名称,资源名称的形式例如以下: |
//server/service server 是远程服务器的NetBIOS名字,对于windows服务器而言,就是出如今网上邻居中的名字。 |
Service是各server所提供的资源的名字。 |
pssword 是存取该资源所需的口令 |
option 各种命令选项,当中 -L 用于列出远程server提供的全部资源 |
-I 指定远程server的IP地址。此时,servicesname 中的NetBIOS名部分将被忽略。 |
|
(2)多种smbclient命令: |
运行smbclient命令成功后,进入smbclient环境,出现提示符: smb:/> |
这里有很多命令和ftp命令类似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们能够訪问远程主机的共享资源。 |
|
4、 Samba系统装载与卸载 |
(1) 装载其它主机的资源 |
我们能够利用Samba提供的smbmount命令,装载其它主机的共享资源。 |
Smbmount的命令语法:# smbmount |
当中 servicename 是资源名,mount-point是安装点。 |
|
比如: # smbmount "//server/tmp" -c ‘ mount /mnt‘ |
表示:把名字为“server”的计算机上的共享资源“tmp”的内容装载到本地的 /mnt |
文件夹下。 |
|
(2) 卸载资源 |
卸载一个已经装载的SMB文件系统,使用smbunmount命令,同一时候指定要卸载的装载点。 比如: # smbunmount / mnt |
|
三、Samba配置 |
Samba组件的配置文件是 /etc/smb.conf ,该文件差点儿包括了Samba系统程序执行时所需的全部配置信息。 |
|
1、 配置选项 |
配置文件里有比較重要的几个节:[gloabal]、[homes]、[printers],以下分别给与说明。 |
(1)[gloabal]节 在全局參数中,參数的设置直接影响samba系统。 |
NetBIOS name:设置主机名称 |
Workgroup:用来指定主机所在网络上所属的NT域名或者工作组名称。格式是 |
Workgroup= Nt Domain-Name or workgroup-name |
Server string:用来设置本机描写叙述,缺省是 Samba Server |
Host Allow:它同意设置哪些领域的机器能够訪问它的Sambaserver |
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文件夹 |
当不论什么一个客户訪问Sambaserver时,在网络资源中都能出现自己的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 |
|
2、 用户映射 |
全局參数“username map”用来控制用户映射,它同意管理员指定一个映射文件,该文件包括了在客户机和server之间进行用户映射的信息。 |
如:username map= /etc/smbuser |
用户映射常常在windows 和linux 主机间进行。 两个系统拥有不同的用户账号,用户映射的目的是将不同的用户映射成为一个用户,便于共享文件。 |
以下是一个映射文件的样例: |
# Map Windows admin to root |
root=admin administrator |
;Map the member of developer to studio |
studio = @developer |
|
等号左边是单独的Linux账号,等号右边是要映射的账号列表。 |
server逐行分析映射文件,假设提供的账号和某行有右側列表中的账号匹配,就把它 |
替换为等号左边的账号。 |
|
3、 使用加密口令 |
新版本号的windows 95以及windows98、winnt(sp3以上版本号),在网络传输中仅传递加密口令作为用户认证的信息。这类客户机和不支持加密口令而且以user 安全级执行的Sambaserver通讯时,会出现问题。为了正常的通讯,sambaserver使用加密口令。以下讨论怎样在samba中使用加密口令。 |
(1) 口令文件 /etc/smbpasswd |
为了使用加密口令,samba 须要一份口令文件(/etc/smbpasswd),而且该文件应该和Linux的口令文件(/etc/passwd)保持同步。以下是生成文件命令: |
|
# cat /etc/password | mksmbpasswd > /etc/smbpasswd |
|
smbpasswd 是须要的口令文件,其权限是0600,全部者是root |
smbpasswd和passwd文件的记录相应,password部分不同。password有两部分组成,每部分 |
是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 |
|
4、windows系统中的明码口令使用 |
Samba系统中使用明码口令作为连接SMB的默认设置。当SMBserver对协商协议做出响应时,响应信息包括了一位,以说明server是否支持询问或者响应加 密。随着win95的网络重定向更新程序的公布,Microsoft改动了默认值,这样,windows客户就不会向不支持加密的server发送明码口令了。 |
在这样的情况下,有两种解决的方法: |
(1)设置Sambaserver使用加密口令 |
(2)让windows客户使用明码口令 |
这里选用第2种解决的方法,通过改动注冊表来实现。以下对win95/win98、winnt用户分别给与说明。 |
(1)win98/win95系统用户 |
在注冊表中增加下列注冊字,并又一次启动机器: |
[HKLM/System/CurrentCntrolSet/Services/VxD/VNETSUP] |
“EnablePlainTextPAssword”= dword:00000001 |
|
(2)Winnt系统用户 |
改动注冊表,增加下列注冊表项,并又一次启动机器: |
[HKLM/System/CurrentCntrolSet/Services/Rdr/Parameters] |
“EnablePlainTextPAssword”= dword:00000001 |
|
四、Samba应用 |
1、 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盘 |
|
2、Linux资源共享与使用 |
(1)将Linux 的资源共享 |
通过编辑Samba配置文件,加入须要共享的Linux资源。同一时候能够设定訪问此资源的用户群及其訪问权限。以下是一段样例,将本机的 /public/data 文件夹共享,全部人都有读写权限。 |
[data] |
comment = Public Data |
path = /public/data |
public = yes |
writable = yes |
printable = no |
|
(2)在Linux中使用共享资源 |
能够使用smbclient命令,訪问全部的Samba资源。详细用法见前述。 |
|
五、Samba应用程序 |
smbclient :訪问全部共享资源 |
smbstatus: 列出当前全部的samba连接状态 |
smbpasswd:改动samba用户口令、添加samba用户。 |
Nmblookup:用于查询主机的NetBIOS名,并将其映射为IP地址 |
Testparam: 用于检查配置文件里的參数设置是否正确 |
Linux下Samba的配置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。