基于linux的samba服务器的配置正文新.docx
- 文档编号:7982225
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:17
- 大小:430.70KB
基于linux的samba服务器的配置正文新.docx
《基于linux的samba服务器的配置正文新.docx》由会员分享,可在线阅读,更多相关《基于linux的samba服务器的配置正文新.docx(17页珍藏版)》请在冰豆网上搜索。
基于linux的samba服务器的配置正文新
1 引言
随着Linux操作系统的发展和成熟,国内外使用Linux操作的用户不断增加。
由于Linux操作系统具有安全、稳定、耗用资源相对Windows操作系统较少并提供了完整的Internet/Intranet解决方案,因而,用Linux操作系统作为网络管理服务器来组建网络方案的用户不断增加。
而目前WindowsNT网和Window操作系统的工作站用户比率很大,如何使Windows的网络用户能以熟悉的图形化界面方式访问Linux操作系统提供的共享文件,并实现共享文件的操作是Windows用户所关心的问题。
几乎所有的Linux发行套件都提供了一个很好的工具Samba,可以轻松实现文件共享。
Samba是基于SMB协议的一个应用程序,借助SambaLinux可以在Windows平台的计算机中创建与使用共享。
另外Samba提供了一些使Linux用户从Windows计算机进入共享和文件传输的工具。
利用Samba服务器可在Windows机器上操作Linux机器上文件和其它资源[1]。
本课程设计依据Linux操作系统提供的SMB服务器简单介绍如何安装和配置Samba服务器,实现Windows下访问Linux共享文件。
1.1、Samba历史
Samba的开发者是AndrewTridgell。
他是从1991年12月开始着手开Samba的,当时他还是澳大利亚国立大学计算机科学实验室的研究生。
根据他自己的解释,在他测试DEC公司eXcursion软件Beta版时,试图反汇编DEC公司DOS下的Pathworks网络所用的文件共享协议程序,并因此产生了这一思想。
eXcursion为PC机提供了XWindow服务。
在测试eXcursion时不能使用PC-NFS的文件共享协议,并且需要用Pathworks进行安装。
这样产生了一题:
Pathworks限制了DEC平台的网络文件服务功能,使之只能运行Ultrix或VMS。
作为一个具有开放系统思想的人,Andrew决定监视Pathworks的网络流量,以检查是否有可能将该协议移植到其他平台上。
这需要对网络编程有一定的研究,而且需要使用软件工具捕获网络中的报文。
在对Pathworks的报文数据进行
逐位逐字节的分析之后,他已经能够在Sun计算机平台上设计一些基本的文件操作了。
在对协议进行研究时,他阅读了关于NBT的RFC文档。
尽管他无法确定NBT标准和他的SMB应用之间的关系,他仍然继续工作,并在1992年1日推出了“Server0.1”。
几个月,Andrew继续将该软件向其他非DEC平台移植。
这项工作还包括修补bug和增加一些功能。
然后他推出了一个新的版本,“Server1.0”,在Internet上发布了这一软件。
接下来,像所有成功的软件开发项目一样,在随后的几年里,软件的代码按照用户的需要进行了相应的修改。
个名叫DanShearer的Linux迷对此软件的非常感兴趣的来信后,这个项目又继续进行。
此外,DEC公司也发来请求,希望他们能将该软件封装在随Alpha版一起发布的CD盘中。
而Linux与PC机的互连,以及MicrosoftSMB标准的制定,也进一步推动了Samba的发展。
在1993年12月,该项目以“SambaforUNIX”的名字重新露面。
“Server”也被“smbserver”所替代,然而,由于商标上的歧义,这一名字在不久以后就被放弃了。
在为软件重新命名的过程中,Andrew在UNIX的/usr/dict/words数据库中找到了一个含有“SMB”的词。
这样“Samba”这一名字就诞生了。
1.2 Samba简介
随着计算机网络的发展,实现不同操作系统之间的文件和打印共享成为一个必然的趋势。
在NetBIOS(NetworkBasicInput/OutputSystem)出现之后,Microsoft就实现了一个网络文件/打印服务系统,这个基于NetBIOS的文件共享协议,被称为SMB(ServerMessageBlock)[3]协议。
通过这个协议,就可以实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。
因此,为了让Windows和Linux计算机相集成,最好的办法即是在Linux计算机中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,如同使用Windows服务器一样,就可以使用Linux计算机上的资源了[2]。
简单地说,Samba服务器是Linux与Windows资源共享的桥梁。
Samba服务器可以提供以下功能:
(1)把Linux系统下的文件共享给Windows系统;
(2)在Linux系统下访问Windows系统的共享文件;
(3)把Linux系统下安装的打印机共享给Windows系统使用;
(4)在Linux系统下访问Windows系统的共享打印机。
1.3 Samba工作原理
Samba是用来实现SMB的一种软件,它的工作原理是让NETBIOS(Windows网上邻居的通讯协议)和SMB这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Linux计算机可以在网上邻居中被Windows计算机看到。
由于SMB通信协议采用的是Client/Server架构,所以Samba软件可以分为客户端和服务器端两部分。
通过执行Samba客户端程序Linux主机便可以使用网络上Windows主机所共享的资源;而在Linux主机上安装Samba服务器,则可以使Windows主机访问Samba服务器共享的资源。
Samba是在NetBIOS这个通讯协议上面开发出来的,最早IBM开发NetBIOS的目的只是要让局域网内少数电脑进行网络连接的一个通讯协议而已,所以考虑的角度并不是针对大型网络,因此,这个NetBIOS是无法跨越路由(Router/Gateway)的。
这个NetBIOS在局域网(LocalAreaNet-work,LAN)内非常好用,所以微软的网络架构就使用了这个协议来沟通!
而最初开发Samba的时候,其实是想让Linux系统可以加入Windows系统来共享使用彼此的文件,所以Samba就架构在NetBIOS上了。
[3]
Samba使用的守护进程有2个:
(1)smbd:
这个daemon的主要功能就是用来管理Samba主机分享什么目录、共享文件与打印机等的内容。
(2)nmbd:
这个daemon则是用来管理群组、Net-BIOSNAME等的解析。
Samba每次启动都需要有这2个守护进程。
smbd和nmbd使用的全部配置信息都保存在smb.conf文件中。
smb.conf向smbd和nmbd两个守护进程说明输出什么,共享输出给谁及如何进行输出以便共享。
Samba还包含了一些实用工具。
smbclient是一个SMB客户工具,有shell-based用户界面,并与ftp有些类似。
应用它可以复制其他的SMB服务器资源,还可以访问其他SMB服务器提供的打印机资源。
对于Linux用户,Samba还提供了一个SMB文件系统用以直接安装一个共享的Windows文件目录至Linux文件系统。
Testparm命令用来快速检查smb.conf问件的语法错误。
其它工具用来配置Samba的加密口令文件。
[4]
2samba服务器的安装
2.1软件包的安装
(1)安装Samba客户端软件client
rpm–ivhsamba-client-3.0.0-15i386.rmp回车后提示出现错误(出现这种错误的原因是安装系统是只选则了gcc编译器等几个组件)如下:
“error:
faileddependencies:
Samba-common=3.0.0isneededbysamba-client-3.0.0-15”
出现这个错误叫依赖性关系出错,就是在安装一个软件包的时候,需要另外一个软件包的支持而出现的错误。
解决办法如下:
安装第一张光盘的rpmdb-fedora这个软件包,可以解决依赖性关系。
命令:
进入安装包的目录rpm–ivhrpmdb-fedora-1-0.20031103.i386.rpm
(2)安装Samba软件包
命令:
rpm–ivh–aidsamba*.rpm这样就安装了samba的所有软件包了(客户端和服务器)
查询所安装的软件包,使用管道符号过滤出samba
命令:
rpm–qa|gerpsamba
如果查询结果比较长,可使用more,通过管道传递给more
命令:
rpm–ql|more
2.2检查软件包的内容
#rpm-qlsamba
#rpm-qlsamba-common
#rpm-qlsamba-client
在RedhatLinux9的安装光盘中提供了Samba服务器的rpm包,有以下几
个安装Samba服务器的RPM包:
(1)Samba-common:
包括Samba服务器和客户端均需要的文件
(2)Samba:
Samba服务端软件
(3)Samba-client:
Samba客户端软件
(4)samba-swat:
Samba的Web配置工具
2.3服务器的安装
(1)如果在安装Linux时已经安装了Samba,就不需要再安装它了,但如果不确定是否已经安装了Samba,可使用下面的命令来确认:
#rpm-qa|grepsamba
(2)如果确认没有安装Samba可将RedHatLinux9的第一张安装光盘放入光驱中,然后通过下面的命令进行安装:
#mount/mnt/cdrom
(3)将终端的当前工作目录切换到RedHatLinux9安装光盘的RedHat/RPMS目录使用如下命令:
#cd/mnt/cdrom/RedHat/RPMS
(4)安装Samba服务器所需的rpm包。
使用如下命令:
#rpm-ivhsamba-common-2.2.7a-7.9.0.i386.rpm
#rpm-ivhsamba-2.2.7a-7.9.0.i386.rpm
#rpm-ivhsamba-client-2.2.7a-7.9.0.i386.rpm
(5)安装Samba的图形配置工具。
使用如下命令:
#rpm-ivhredhat-config-samba-1.0.4-1.noarch.Rpm
(6)弹出光盘。
使用如下命令:
#cd;eject
当已经安装Samba,运行#rpm-qa|grepsamba时可得到如图2.1所示的解面。
图2.1察看是否安装Samba服务器
3.samba服务器的配置
可以使用图形化界面的Samba服务器配置工具来进行配置,也可用命令行来配置Samba服务器。
下面分别简单介绍图形化和命令两种不同形式对Samba服务器的配置方法。
3.1图形化配置
要使用图形化界面来配置Samba,使用Samba服务器配置工具。
Samba服务器配置工具是用来管理Samba共享、用户、以及基本服务器设置的图形化界面。
它修改/etc/samba/目录中的配置文件。
没有使用该程序进行的改变都会被保留。
要使用该程序,必须在运行X窗口系统,具备根特权,并且安装了redhat-config-sambaRPM软件包。
Samba的服务器的配的步骤如下:
(1)配置服务器设置
启动Samba服务器配置工具有两种方式启动该工具一种是从桌面启动Samba服务器配置工具,点击面板上的"主菜单"=>"系统设置"=>"服务器设置"=>"Samba",另一种是在shell提示(如XTerm或GNOME终端)下键入redhat-config-samba命令。
打开如图3.1所示的对话框。
图3.1Samba服务器配置工具
Samba服务器的第一步是配置服务器的基本设置和几个安全选项。
启动了应用程序后,选择"首选项"=>"服务器设置"。
打开了如图3.2所示的对话框,在"基本"选项卡中指定计算机应在的工作组以及对计算机的简短描述这步操作是今后在Windows系统中的网上邻居所看到计算机名。
图3.2配置基本服务器设置
在"基本"标签上,指定计算机应在的工作组以及对计算机的简短描述。
它们与smb.conf中的workgroup和serverstring选项相对应。
在图3.3种的"安全"的设置操作的目的是运行用户从网络中以什么样的验证方式访问该Samba服务器
图3.3Samba服务器的安全性设置
安全标签包含以下选项:
"验证模式"—它和security选项相对应。
选择以下验证模式中的一种。
"ADS"
——Samba服务器充当活跃目录域(ADS)领域中的一个成员,Kerberos在服务器上必须被安装和配置,并且Samba必须使用net工具成为ADS领域的一员。
net是samba-client软件包的一部分。
详情请参阅samba-client的说明书页。
该选项不会把Samba配置成一个ADS控制器。
"域"
——Samba服务器依赖于WindowsNT主要或备份域控制器来校验用户。
服务器把用户名和口令传递给控制器,然后等待它们被返回。
在"验证服务器"字段中指定主要或备份域控制器的NetBIOS名称。
如果"加密口令"选项被选,它必须被设置为"是"。
"服务器"
——Samba服务器试图通过把用户名和口令组合传递给另一个Samba服务器来校验它们。
如果它无法校验,服务器会试图使用用户验证模式来校验它们。
在"验证服务器"字段中指定另一个Samba服务器的NetBIOS名称。
"共享"
——Samba用户不必为每个Samba服务器都输入用户名和口令组合。
它们在试图连接Samba服务器上的指定共享时才会被提示输入用户名和口令。
"用户"—(默认)Samba用户必须为每个Samba服务器提供一个有效的用户名和口令。
如果你想让"Windows用户名"选项生效,选择这个选项。
"加密口令"—如果用户从Windows98、带有服务包3的WindowsNT4.0、或其它最近版本的MicrosoftWindows中连接,该选项必须被启用。
口令在服务器和客户间使用加密格式而非可被截取的纯文本格式传输。
它和encryptedpasswords选项相对应。
"来宾账号"—当用户或来宾用户要登录入Samba服务器时,他们必须
被映射到服务器上的有效用户。
选择系统上的现存用户名之一作为来宾Samba账号。
当用户使用来宾账号登录入Samba服务器,他们拥有和这个用户相同的特权。
该选项和guestaccount选项相对应。
这里选择默认设置,点击了"确定"后,所做改变会被写入配置文件,守护进程会被重新启动;因此改变会立即生效。
(2)管理Samba用户
管理允许哪些用户可以访问该Samba服务器,可以通过添加,编辑,删除用户的按钮来进行管理。
Samba服务器配置工具要求在添加Samba用户之前,在充当Samba服务器的系统上必须存在一个活跃的用户账号。
Samba用户和这个现存的用户账号相关联。
如图3.4所示。
图3.4管理Samba用户
要添加Samba用户,在图3.1中选择"首选项"=>"Samba用户",打开如图3.4所示的对话框。
然后点击"添加用户"按钮。
打开如图3.5所示的对话框。
在"创建新Samba用户"窗口中的本地系统上的现存用户列表中选择"Unix用户
名"。
从现存用户列表中选择一个用户名。
图3.5创建新Samba用户
如果用户在Windows机器上有一个不同的用户名,并将从Windows机器上登录入Samba服务器,请在"Windows用户名"字段中指定Windows用户名。
"这里输入的是“shanwei”服务器设置"首选项的"安全"活页上的"验证模式"必须被设置为"用户"才能是这个选项生效。
还需要为Samba用户配置一个"Samba口令",并再键入一次来确认这个口令。
即便你选择了为Samba使用加密口令,仍建议为所有用户设置一个不同于系统口令的Samba口令。
要编辑某个现存用户,从列表中选择它,然后点击"编辑用户"。
要删除某个现存的Samba用户,选择这个用户,然后点击"删除用户"按钮。
删除Samba用户不会删除相关的用户账号。
点击了"确定"按钮后,用户就会被立即修改。
(3)添加共享
要添加共享,点击"添加"按钮。
如图3.6所示。
"基本"活页标签配置以下选项:
"目录"—通过Samba共享的目录。
这个目录必须存在。
"描述"—对共享的简短描述。
"基本权限"—用户应该只能够读取共享目录中的文件还是应该能 够读写共享目录中的文件。
[5]
图3.6添加共享
在"访问"活页标签上,选择是否要只允许指定的用户来访问共享还是允许所有Samba用户来访问共享。
如果你选择了要允许指定用户访问,从可用的Samba用户列表中选择这些用户。
点击了"确定"按钮后,共享就会立即被添加。
添加后回到Samba服务器的主界面就可以看到被设置成共享的文件如图3.7所示。
图3.7Samba主界面显示共享资源
3.2命令行配置
Samba使用/etc/samba/smb.conf作为它的配置文件。
如果你改变了这个配置文件,这个改变直到使用Servicesmbrestart命令重启Samba守护进程后才会生效。
要指定Windows工作组和对它的简短描述,编辑smb.conf文件中的以下几行:
workgroup=WORKGROUPNAME
serverstring=BRIEFCOMMENTABOUTSERVER
把WORKGROUPNAME换成机器所属的Windows工作组名。
BRIEFCOMMENTABOUTSERVER是可选的,它被用作关于Samba系统的Windows注释。
要在Linux系统上创建Samba共享目录,在smb.conf文件中添加以下几行(根据系统需要修改了该文件之后):
[sharename]
comment=Insertacommenthere
path=/home/share/
validusers=shanwei
public=no
writable=yes
printable=no
createmask=0765
上面的例子允许用户shanwei从Samba客户中读写Samba服务器上的目录/home/share。
3.3加密口令
加密口令被默认启用,因为它更安全。
如果加密口令没有被使用,纯文本口令就会被使用,它能够被别人使用网络分组嗅探器来截取。
建议使用加密口令。
MicrosoftSMB协议最初使用纯文本口令。
然而,带有服务包3或更高的WindowsNT4.0、Windows98、Windows2000、WindowsME、以及WindowsXP要求加密的Samba口令。
要在Linux系统和运行以上Windows操作系统的系统间使用Samba,可以编辑Windows注册器来使用纯文本口令或配置Linux系统的Samba来使用加密口令。
如果要修改注册器,必须为所有Windows机器这么做—但是这是很危险的,有可能导致进一步的冲突。
为了更高的安全性,推荐使用加密口令。
[6]
要配置Samba使用加密口令,遵循以下步骤:
为Samba创建一个单独的口令文件。
要根据现存/etc/passwd文件来创建,在shell提示下键入以下命令:
cat/etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd
如果系统使用NIS,键入以下命令:
ypcatpasswd|mksmbpasswd.sh>/etc/samba/smbpasswd
mksmbpasswd.sh脚本和samba软件包一起被安装在/usr/bin目录上。
改变Samba口令文件的权限许可,因此只有根用户才有读写权限:
chmod600/etc/samba/smbpasswd
这个脚本不会把用户口令复制到新文件,Samba用户账号在没有设置口令之
前不会被激活。
为了更高的安全性,建议把用户的Samba口令设置为不同于用户的口令的口令。
要设置每个Samba用户的口令,使用以下命令(把username替换为每个用户的用户名):
smbpasswdusername
加密口令必须被启用。
由于它们被默认启用,它们不必在配置文件中被特别启用。
不过,它们也不能在配置文件中被禁用。
在smb.conf文件中,需确定以下行不存在:
encryptpasswords=no
如果它确实存在,可以在行首加一个分号(;)来把它变成注释,这样该行就会被忽略,加密口令就会被启用。
如果该行存在但没有被注释掉,应该删除它或把它变成注释。
要在配置文件中特别启用加密口令,给/etc/samba/smb.conf文件添加以下几行:
encryptpasswords=yes
smbpasswdfile=/etc/samba/smbpasswd
在shell提示下键入servicesmbrestart来确定smb服务被启动。
如果想让smb服务被自动启动,使用ntsysv、chkconfig、或服务配置工具来在运行时间启用它。
当使用了passwd命令后,pam_smbpassPAM模块能够被用来同步用户的Samba口令和他们的系统口令。
如果用户引发了passwd命令,他用来登录到红帽企业Linux系统的口令以及他要连接Samba共享所必须提供的口令就会被改变。
要启用这个功能,把以下行添加到/etc/pam.d/system-auth的pam_cracklib.so之下:
passwordrequired/lib/security/pam_smbpass.sonullokuse_authtoktry_first_pass
3.4启动和停止服务器
安装并配置完Samba服务器后下一步就是要启动Samba服务,在通过Samba共享目录的服务器上必须运行smb服务。
使用以下命令来查看Samba守护进程的状态:
/sbin/servicesmbstatus
使用以下命令来启动守护进程:
/sbin/servicesmbstart
使用以下命令来停止守护进程:
/sbin/servicesmbstop
要在引导时启动smb服务,使用以下命令:
/sbin/chkconfig--level345smbon
这几条命令在终端上的使用响应的结果如图3.8所示。
图3.8Samba服务的启动和终止
4在Windows的网上邻居中访问Samba服务器
在Linux中配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 linux samba 服务器 配置 正文