随笔-144  评论-80  文章-1  trackbacks-0
LINUX学习笔记—SAMBA使用篇
2001-04-06· ·illiad··yesky

1


  前言半个月前开始安装、学习REDHAT LINUX7.0。作为一个Linux新手,不可避免的遇上了一些问题,通过翻阅书籍资料,查看BBS,自己的摸索实践,也解决了一些问题。想到自己的经验教训可供他人借鉴,于是大胆写出来,一来可以当作学习笔记保存,二来希望对刚刚接触Linux的朋友有所帮助。由于本人能力所限,笔记中有所疏漏不足也在所难免,还请各位高手指正。

一、SAMBA简介

  NetBIOS 是一个为了便于开发基于局域网的资源共享应用程序而设计的API。之后,产生了基于NetBIOS的NetBEUI协议和NBT(NetBIOS OVER TCP/IP)协议。NBT协议进一步发展为SMB和CIFS协议。Windows的局域网默认采用的就是NetBEUI协议,而SAMBA软件包所使用的就是CIFS协议,结果就是,装有SAMBA软件包的机器能够和Windows网络的机器进行通信,让没有NetBEUI协议的UNIX、LINUX机器在SAMBA的帮助下和Windows网络共享资源。

二、SAMBA的安装

  RedHat Linux7.0的默认安装模式下已经安装好了SAMBA。可以用“rpm -q samba”命令查看系统是否安装了SAMBA以及安装版本。没有的话,你可以从安装光盘中找到SAMBA的rpm文件手动安装。

三、SAMBA的启动

  使用“ps -aux|grep smb”查看SAMBA服务是否已经运行,默认是否。使用命令“/etc/init.d/smb start”启动它;或是通过“linuxconf”把SAMBA设定为系统启动时启动。具体步骤,运行“linuxconf”,点击“control service activity”,显示的画面如图,点击“sevice control”列表的“smb”,设置启动为“automatic”,“run level”为“5”。



四、访问Windows客户机

  smb启动后,不用作任何设置你已经可以访问运行Windows的机器了。现在有两台机器,分别运行着Linux和Windows98,主机名称分别是redhat和lily。lily上有目录“download”,有打印机“HP”,目录设置为“完全访问”,密码是“abc”。

  1、访问lily上的共享目录。

  第一步,查看lily这台机器的的共享资源,“smbclient -L //lily”,当提示时,输入密码后会列出lily上可用的资源。
  第二步,“mkdir /mnt/download”,在“/mnt”下建立一个目录。
  第三步,“mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download”,把lily上的共享目录挂接到redhat的“/mnt/download”下面。接下来,你可以象使用本地硬盘那样访问该共享目录了。你也可以编辑“/etc/rc.d/rc.local”,把“mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download”添加到文件的末一行,这样,系统一启动,该共享目录也就挂接好了。

  2、使用lily上的打印机。

  单击任务栏上的Gnome图标,单击“system”,单击“control panel”。在“control panel”窗口中,单击打印机图标,选择“SMB/Window 95/98/NT Printer”,如图。



  然后出现设置窗口,如图。


其中“Hostname of Printer Server”应该填上主机名,这里是“lily”;“Printer name”就是“smbclient -L //lily”显示出来的打印机名称,这里是“HP”;“input filter”是让你选择打印机型号的,如图

  可以用类似的型号代替,比如“lily”上的打印机是HP deskjet1120c,这里就选择550c/560c/6xxc。这三项是一定要设置的。然后可以测试一下打印机了。

五、让Windows的机器访问Linux

  两种方式:

  1、手工编辑“/etc/smb.conf”文件;
  2、使用图形介面设置smb.conf。这里介绍后者。

  编辑“/etc/xinetd.d/swat”,改“disable=yes”为“disable=no”,“only_from=localhost”为“only_from=10.0.0.39”。说明:该IP地址是我机器的网卡地址,如果不改,用“localhost:901”不能登录进SWAT管理介面。会提示你:“
A network ettor occured while Netsape was receiving data.
(Network Error:Broken Pipe)Try Connecting again.


  在浏览器中输入“10.0.0.39:901”,进入SWAT,如图


  第一步,设置“global”,其中只要更改“security”类型为“share”,“workgroup”是出现在网络邻居里的组名,“netbios name”是该组中本机的名称,不设置则用主机名。如图。



  第二步,设置“shares”,如图


  先建立一个新的共享名称,接着“choose share”旁边的按钮,选择这个共享名称。设定“path”为“/home/download”,“guest ok”为“yes”,“writable”为“yes”,最后不要忘了单击“commit changes”接受新的设置内容,如图。


  在lily上打开网络邻居可以看到有一个“mygroup”的组,里面有一台“redhat”的电脑,共享目录是“download”。

  至此,一个简单的双向共享建立起来了。当然,SAMBA的功能远不至此,更复杂的功能,有兴趣的朋友可以参看各种资料。

参考以下:

http://www.5ilinux.com/blog/archives/000007.html



随着Linux的普及和大众化,Linux下的文件共享成为用户关心的首要问题。其实几乎所有的Linux发行套件都提供了一个很好的工具Samba,可以轻松实现文件共享。
Samba是基于SMB协议的一个应用程序,目前的版本是2.3.x。Samba的功能很强大,但易用性也极差。究其原因是它的配置文件太大和不容易理解,新手和熟手都对其望而却步。其实仅仅实现文件共享这一单纯目的,配置Samba很简单,只需熟悉几个操作即可。下面我用一个例子说明这几个操作。
假设你已熟悉Linux的基本操作,例如VI编辑器的使用、基本的操作文件命令。
现在我们有三台PC,一台安装了window2000,名字是test2000,其上有共享文件夹share;其余两台安装了Linux,一台名字是testsamba,其上有一目录/pub;另一台名字是testlinux,其上也有一目录/pub。我们要实现的目标是把testsamba上的/pub共享,供test2000和test_linux的使用。
对test_samba我们进行下面操作:

在/etc/下找到smb.conf,用VI编辑器打开,
# vi /etc/smb.conf或vi /etc/samba/smb.conf
在【gobal】字段下,添加netbios记录,一般加在workgroup记录的下一行;
netbios name = testsamba
在【gobal】字段下,修改secrity记录;
secrity = share
在【public】字段下,修改path记录;
path = /pub
在【public】字段下,添加geuest ok记录;
guest ok = yes
删除【public】字段每行行首的“;”标示;
保存退出。
简单解释一下,添加的netbios name是可以在test2000网络邻居中看得见的机器名;添加的/pub是可以在网络邻居中看见的共享目录;添加guest ok是允许所有用户都可以guest帐户访问共享;删除“;”标示是要整个【public】字段成为可执行。
现在/pub就成为可以被test2000和testlinux两台机器共享的目录了。
试试看:
在testsamba下,为使用test2000下的共享文件夹可以进行以下操作:
# smbclient –L //test2000
此命令为查看test2000下的共享情况,注意在系统要求输入password时,直接回车即可进入test2000,此时屏幕上列出test2000下的共享。
#smbclient \\\\test2000\\share –U share (或smbmount //test2000/share /pub)
此命令可进入test2000的share目录,屏幕上出现MS-DOS的提示符:\时说明用户进入了share目录。此时可以在提示符后输入“?”查找你可使用的命令。
在test2000下,使用testsamba的共享目录/pub,可以进行以下操作:
查找计算机testsamba,当testsamba目标出现时,双击图标pub,即进入共享文件夹pub了。
在testlinux下,使用testsamba的共享目录pub,可进行如下操作:(假设已知pub存在)
#smbmount //testsamba/pub pub
此命令可把testsamba下的pub挂到本机的pub上,同上在系统要求输入password时,直接回车,接着依次输入#cd /pub/pub、#ls,屏幕即列出testsamba的pub目录下的文件了。
Win2000和Linux实现文件共享了,简单吧!



Linux 系统中的Samba配置


薛龙琴、王祖汉
01-8-8 下午 01:09:04


前言:
为了实现windows 和 Linux以及其他操作系统之间的资源共享,软件商推出nfs 和samba两种解决方式。由于市场上缺乏象pc-nfs那样的客户端工具,使得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的资源共享。
登录服务器,可以作为局域网的服务器。
作为主域控制器。
WINS服务器。
支持SSL。
支持SWAT。
二、 Samba服务
1、 核心进程
Samba 有两个守护进程:smbd 和nmbd,它们是Samba的核心进程。nmbd进程使其他计算机浏览Linux服务器,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命令用来存取远程Samba服务器上的资源。其命令形式与ftp相似。
命令语法是:#smbclient [password] [option]
(1) 解释:servicename是要连接的资源名称,资源名称的形式如下:
//server/service server 是远程服务器的NetBIOS名字,对于windows服务器而言,就是出现在网上邻居中的名字。
Service是各server所提供的资源的名字。
pssword 是存取该资源所需的口令
option 各种命令选项,其中 -L 用于列出远程服务器提供的所有资源
-I 指定远程服务器的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:它允许设置哪些领域的机器可以访问它的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
2、 用户映射
全局参数“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账号,等号右边是要映射的账号列表。
服务器逐行分析映射文件,如果提供的账号和某行有右侧列表中的账号匹配,就把它
替换为等号左边的账号。
3、 使用加密口令
新版本的windows 95以及windows98、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
4、windows系统中的明码口令使用
Samba系统中使用明码口令作为连接SMB的默认设置。当SMB服务器对协商协议做出响应时,响应信息包含了一位,以说明服务器是否支持询问或者响应加密。随着win95的网络重定向更新程序的发布,Microsoft修改了默认值,这样,windows客户就不会向不支持加密的服务器发送明码口令了。
在这种情况下,有两种解决办法:
(1)设置Samba服务器使用加密口令
(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配置
posted on 2005-03-17 23:43 小力力力 阅读(1472) 评论(0)  编辑  收藏 所属分类: LINUX

只有注册用户登录后才能发表评论。


网站导航: