第八章 linux samba服务器配置.docx

上传人:b****5 文档编号:6688008 上传时间:2023-01-09 格式:DOCX 页数:12 大小:24.86KB
下载 相关 举报
第八章 linux samba服务器配置.docx_第1页
第1页 / 共12页
第八章 linux samba服务器配置.docx_第2页
第2页 / 共12页
第八章 linux samba服务器配置.docx_第3页
第3页 / 共12页
第八章 linux samba服务器配置.docx_第4页
第4页 / 共12页
第八章 linux samba服务器配置.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

第八章 linux samba服务器配置.docx

《第八章 linux samba服务器配置.docx》由会员分享,可在线阅读,更多相关《第八章 linux samba服务器配置.docx(12页珍藏版)》请在冰豆网上搜索。

第八章 linux samba服务器配置.docx

第八章linuxsamba服务器配置

第八章SAMBA服务器配置

8.1Samba软件

Samba是一个工具套件,可以让用户在UNIX系统上实现SMB(SessionMessageBlock)协议,或者称之为NETBIOS/LanManager协议。

SMB协议通常被Windows系列用来实现磁盘和打印机共享。

需要注意的是,NetBIOS是基于以太网广播机制的,没有网桥不能跨越不同的网段。

在Linux上安装Samba服务可以实现与Windows系统的文件共享和打印机共享。

它 们之间的数据传输使用SMB协议。

这是一个在传输层之上的协议,可以支持很多异构系统的网络互联(如Linux,Solaris,Windows等)。

Samba之所以能够工作,因为SMB协议模仿了Windows内核的文件和打印共享协议。

Microsoft公司已经将SMB改名为公共因特网文件系统(CIFS,CommonInternetFileSystem),并打算把它设计为Internet的标准协议。

Samba执行了SMB/CIFS的一个版本,这个版本在很大程度上与大多数的Windows版本兼容。

但是,无论是从Windows连接到Linux还是从Linux连接到Windows计算机,Samba系统对于实现文件和打印服务来说总是很稳定的。

可以通过Windows的网络邻居来轻松访问安装了Samba的UNIX/Linux服务器。

Samba软件的主要组成部分有:

smbd 这是samba的SMB服务器。

它使用SMB协议与客户连接,完成事实上的用户认证、权限管理和文件共享任务。

nmbd 提供NetBIOS名字服务的守护进程,可以帮助客户定位服务器和域,如同WindowsNT上的WINS服务器。

smb.conf 是samba的配置文件,在FreeBSD中被放在/usr/local/etc目录中。

swat 是一个Samba专用的WWW服务器,用于通过客户浏览器配置Samba,提供了对Samba的图形配置界面。

smbclient 是一个简单的SMB客户程序,用于访问其他SMB计算机共享的文件或打印资源,例如Windows95或NT计算机,他的操作和ftp类似。

smbprint 是一个shell脚本,使用smbclient向Windows计算机上共享出的打印机上发送要打印的文档。

nmblookup 用于查询NetBIOS名字的命令行工具。

8.2安装Samba软件

Samba的主页是http:

//samba.org。

使用的Samba的版本是3.0.3-5。

可以从网站下载Samba安装文件的3个rpm软件包:

samba-3.0.3-5.i386.rpm、samba-client-3.0.3-5.i386.rpm和samba-common-3.0.3-5.i386.rpm。

安装samba3.0.3-5和samba-client时,可以执行下面的命令:

rpm-isamba-3.0.3-5.i385.rpm

rpm-isamba-client-3.0.3-5.i386.rpm

成功安装了samba后,会在/etc/rc.d/init.d目录下出现一个smbshell脚本文件。

可以使用命令:

chkconfig–list

检测smbservice是否已经在Fedora的service列表中。

如果没有,可以使用命令:

chkconfig--addsmb

来将smbservice添加到/etc/rc.d/init.d目录中。

8.3配置Samba

在系统默认的配置文件中(其路径为/etc/samba/smb.conf),允许用户作为Samba共享来查看它们的Linux主目录。

它还可以把Linux配置的打印机作为Samba共享打印机共享,即用户可以在自己的Linux系统上连接打印机,然后从网络上的Windows计算机执行打印操作。

本节将介绍Samba的配置方法。

首先启动Samba服务器。

在/usr/bin下有两个程序:

smbd和nmbd,通过使用它们可以启动服务器。

一般情况下,它可以以两种方式启动,一个由inetd守护进程启动,另一种是作为单独的进程启动。

检查Samba是否启动,可以查看/etc/services文件中的信息,下面所示的即是系统成功启动后的显示信息。

netbios-ns137/tcpnbns

netbios-ns137/udpnbns

netbios-dgm138/tcpnbdgm

netbios-dgm138/udpnbdgm

netbios-ssn139/tcpnbssn

Samba服务器安装成功后,并不能马上工作,要进行一系列的配置,才能使其正常工作。

Samba的配置文件为/etc/smb.conf。

Samba服务器的配置相当复杂,有170多个选项,这里只列出主要的选项,其他选项使用默认值就可以了。

先用命令打开配置文件:

vi/etc/smb.conf

可以看到屏幕上配置的文件。

如果行首以“#”号开头,该为注释行,系统不会执行。

Samba文件分若干个配置段,每段以[段名]形式开头,主要有[global]全局段、[homes]用户目录段、[printers]打印机段等。

主要选项包括以下几点:

在Windows和linux的混合网络中,samba还是有很大用处的,本章用实验的方法快速学习Samba。

8.3.1全局设置

workgroup=MYGROUP

定义该Samba服务器所在的工作组或者域(如果下面的security=domain)。

serverstring=MYSambaServer

设置计算机的描述,通过网络邻居访问时,可以在备注里面看见这个内容,而且还可以使用Samba设置的变量。

%S=当前服务名

%P=当前服务的根目录

%u=当前服务的用户名

%g=当前用户说在的主工作组

%U=当前对话的用户名

%G=当前对话的用户的主工作组

%H=当前服务的用户的Home目录

%v=Samba服务的版本号

%h=运行Samba服务计算机的主机名

%m=客户机的NETBIOS名称

%L=服务器的NETBIOS名称

%M=客户机的主机名

%N=NIS服务器名

%p=NIS服务的Home目录

%R=采用的协议等级(可以是CORE,COREPLUS,LANMAN1,LANMAN2,NT1)

%d=当前服务进程的ID

%a=客户机的结构(只能识别几项:

Samba,WfWg,WinNT,Win95)

%I=客户机的IP

%T=当前日期和时间

hostsallow=网络或者主机

这里可以设置允许访问的网络和主机IP,比如允许192.168.1.0/24和192.168.2.1/32访问,就用hostallow=192.168.1.192.168.2.1127.0.0.1(网络注意后面加“.”号,各个项目间用空格隔开,注意要把本机加进去)。

(1)printcapname=printcapFile

到printcapFile(一般是/etc/printcap)这个文件中取得打印机的描述信息。

(2)loadprinters=yes|no

设置是否自动共享打印机而不用设置下面的[printer]一节的相关东西。

(3)printing=PrintSystemType

定义打印系统的类型,默认是lprng,可选项有:

bsd、sysv、plp、lprng、aix、hpux、qnx。

(4)guestaccount=pcguest

定义用户账号,而且需要把这个账号加入/etc/passwd,不然会使用默认的nobody。

(5)logfile=LogFileName

定义记录文件的位置(一般是用/var/log/samba/%m.log)。

(6)maxlogsize=size

定义记录文件的大小(单位是KB,如果是0的话就不限大小)。

(7)security=security_level

定义Samba的安全级别,从低到高分为4级:

share、user、server和domain。

分别对应的验证方式如下。

“ share 没有安全性的级别,任何用户都可以不要用户名和密码访问服务器上的资源。

 “user Samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。

 “server 和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。

如果递交失败,就退到user安全级。

“ domain 这个安全级别要求网络上存在一台Windows的主域控制器,Samba把用户名和密码递交给他去验证。

后面3种安全级都要求用户在本Linux计算机上也是系统账户。

否则无法访问。

passwordserver=

当前面的security设置为server或者domain时才有必要设置。

passwordlevel=n

这是设置针对一些SMB用户,如OS/2而设的,这样的系统在发送用户密码时,会把密码转换成大写再发送,这样就和Samba的密码不一致,这个参数可以设置密码里允许的大写字母个数,Samba会根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。

n的值越大,组合的次数就越多,验证时间就越长,安全性也会因此变得越低。

例如n=2,用户的密码是abcd,但发送出去其实是ABCD,Samba就会把这个ABCD进行大小写重组,组合后的结果可以是:

Abcd、aBcd、abCd、abcD、abcd、ABcd、AbCd、AbcD、aBCd、aBcD、abCD。

所以如果没有必要,就把n定为0。

这样Samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。

usernamelevel=n

这个是对于用户名的情况,说明和上面一项类似。

encryptpasswords=yes|no

设置是否对密码进行加密,Samba本身有一个密码文件/etc/samba/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,Samba直接把这个密码和Linux里的/etc/samba/smbpasswd密码文件进行验证。

一般把这里的这个开关设置为yes。

smbpasswdfile=smbPasswordFile

设置存放Samba用户密码的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。

sslCAcertFile=sslFile

当Samba在编译时支持SSL的时候,需要指定SSL的证书的位置(一般在/usr/share/

ssl/certs/ca-bundle.crt)。

UNIXpasswordsync=yes|no

passwdprogram=/usr/bin/passwd%u

passwdchat=*New*UNIX*password*%n

*ReType*new*UNIX*password*%n

*passwd:

*all*authentication*tokens*updated*successfully*

这3项设置能从Windows的应用程序中修改UNIX系统的用户密码。

usernamemap=UsermapFile

指定用户映射文件(一般是/etc/samba/smbusers),在这个文件里面指定一行root=admin-

istratoradmin时,客户机的用户是admin或者administrator连接时会被当作root用户看待。

include=MachineConfFile

指定对不同计算机的连接采用不同的配置文件MachineConfFile。

socketoptions=TCP_NODELAYSO_RCVBUF=8192SO_SNDBUF=8192

这是网络socket方面的一些参数,能实现最好的文件传输性能。

interfaces=interface1interface2

如果有多个网络接口,就必须在这里指定。

如interface=192.168.12.2/24192.168.13.2/24

remotebrowsesync=host(subnet)

这里指定浏览列表同步信息从哪里取得,可用host(比如192.168.3.25)或者整个子网(192.168.5.255)。

remoteannounce=host(subnet)

指定这些计算机向网络发出报告。

localmaster=yes|no

指定nmbd是否试图成为本地主浏览器,默认值是yes。

如果设为no,则Samba服务器就永远都不会成为本地主浏览器。

但即使设置了yes,也不等于Samba服务器就会成为本地主浏览器。

只是参与本地主浏览器的选择。

oslevel=n

n的值是整数,决定了nmbd是否有机会成为本地广播区域工作组里的本地主浏览器,默认值是0,意味着nmbd失去浏览选择。

如果要nmbd更有机会成为本地主浏览器,可以设为65。

domainmaster=yes|no

这个参数让nmbd成为一个域浏览器,并取得各本地的主浏览器的浏览列表,并将整个域的浏览列表递交给各本地的主浏览器。

preferredmaster=yes|no

指定nmbd是否是工作组里的首要主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。

preservecase=yes|no

shortpreservecase=yes|no

指定复制DOS文件的时候保持大小写,默认是no。

defaultcase=lower|upper

所有的DOS文件的默认是大写还是小写。

casesensitive=yes|no

区分大小写敏感,一般是no,否则会出现一些问题。

8.3.2共享设置

共享设置中有个比较特殊的段。

[homes],在smb.conf文件中一般没有对这个目录设置特定内容,如路径等。

客户机发出服务请求时,就在smb.conf文件的其他部分查找有特定内容的服务。

如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。

通过homes段,Samba可以得到用户的Home目录并使之共享。

下面是这个段的最基本的几个设置。

[homes]

comment=HomeDirectory

browseable=no

writable=yes

其他的共享配置如下所示。

[MyShare]

comment=grind’sfile

path=/home/grind

allowhosts=host(subnet)

denyhosts=host(subnet)

writable=yes|no

user=user(@group)

validusers=user(@group)

invalidusers=user(@group)

readlist=user(@group)

writelist=user(@group)

adminlist=user(@group)

public=yes|no

hidedotfiles=yes|no

createmode=0755

directorymode=0755

syncalways=yes|no

shortpreservecase=yes|no

preservecase=yes|no

casesensitive=yes|no

manglecase=yes|no

defaultcase=upper|lower

forceuser=grind

widelinks=yes|no

maxconnections=100

deletereadonly=yes|no

其中MyShare指定共享名,一般就是【网上邻居】里面可以看见的文件夹的名字。

comment 是对修改共享的备注。

path 指定共享的路径,可以配合Samba变量使用。

例如可以指定path=/data/%m,这样如果一台计算机的NetBIOS名字是grind,它访问MyShare共享时就是进入/data/grind目录,而对于NETBIOS名是glass的计算机,则进入/data/glass目录。

allowhosts和denyhosts 和前面的全局设置的方法一样。

writeable 指定目录默认是否可写,也可以用readonly=no来设置可写。

user 设置所有可能使用该共享资源的用户,也可以用@group代表group组的所有成员,不同的项目之间用空格或逗号隔开。

validusers 能够使用该共享资源的用户和组。

invalidusers 不能够使用该共享资源的用户和组。

readlist 只能读取该共享资源的用户和组。

writelist 能读取和写入该共享资源的用户和组。

adminlist 能管理该共享资源(包括读写和权限赋予等)的用户和组。

public 该共享资源是否能被用户账号访问,这个开关有时候也叫guestok,所以有的配置文件中出现guestok=yes,其实和public=yes是一样的。

hidedotfiles 是否像UNIX那样隐藏以“.”号开头的文件。

createmode 新建立的文件的属性,一般是0755。

directorymode 新建立的目录的属性,一般是0755。

syncalways 对该共享资源进行写操作后是否进行同步操作。

shortpreservecase 忽略文件名大小写。

preservecase 保持大小写。

casesensitive 是否区分大小写,一般选no,不然可能引起错误。

manglecase 混合大小写。

defaultcase 默认的文件名是全部大写还是小写。

forceuser 强制建立文件的属主。

如果有一个目录,让guest可以写,那么guest就可以删除,如果使用forceuser=grind强制建立文件的属主是grind,同时限制createmask=0755,这样guest就不能删除该目录了。

widelinks 是否允许共享外符号连接,比如共享资源里有个连接指向非共享资源里的文件或目录,如果设置widelinks=no将使该连接无法使用。

maxconnections=n 设置同时连接数是n。

deletereadonly 能否删除共享资源里面已经被定义为只读的文件。

8.3.3光驱和打印机的共享

光驱的共享设置:

[cdrom]

comment=grind’scdrom

path=/mnt/cdrom

public=yes

browseable=yes

rootpreexec=/bin/mount-tiso9660/dev/cd0/mnt/cdrom

rootpostexec=/bin/umount/mnt/cdrom

rootpreexec 连接时用root身份运行mount命令,而rootpostexec则指明了断开时用root身份运行umount,有效实现了对光驱的共享。

打印机共享的设置:

[printers]

path=/var/spool/samba

writeable=no

guestok=yes

printable=yes

printerdriver=starL100

这里printable指明该打印机可以打印,guestok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。

printerdriver的作用是指明该打印机的类型,这样在安装网络打印机的时候可以直接自动安装驱动而不必选择。

8.3.4添加用户

Samba添加用户比较方便,一般是用smbadduser,用法是smbadduserunixid:

netid。

如果本机有个叫linuxuser的用户,使用命令:

smbaddusergrind:

linuxuser

这样从【网上邻居】访问时用户名就用linuxuser。

而如果用了命令:

smbaddusergrind:

linuxqjy

从【网上邻居】访问时提供的用户名就是linuxqjy,而不是linuxuser了。

配置完后,用命令testparm测试是否正确,如果没有错误信息返回,则表示成功。

接下来重新启动Samba服务器:

/etc/rc.d/init.d/smbrestart

8.4连接Samba共享

Samba系统中使用明码口令作为连接SMB的默认设置。

当SMB服务器对协商协议做出响应时,响应信息包含了一位,以说明服务器是否支持询问或者响应加密。

随着Windows系统的网络重定向更新程序的发布,Microsoft公司修改了默认值,这样,Windows客户就不会向不支持加密的服务器发送明码口令了。

在这种情况下,有两种解决办法,一种是设置Samba服务器使用加密口令,另一种是让Windows客户使用明码口令。

这里选用第2种解决办法,通过修改注册表来实现。

下面对Windows和Linux用户分别说明。

1.Windows2000系统用户

修改注册表,加入下列注册表项,并重新启动计算机。

[HKLM\System\CurrentCntrolSet\Services\Rdr\Parameters]

"EnablePlainTextPAssword"=dword:

00000001

2.Linux系统用户

从Linux系统中连接Samba共享,可以在shell下输入命令:

smbclient//hostname/sharename–Uusername

其中,hostname是想要连接的服务器名称或IP地址;sharename是浏览的共享目录名;username是系统的Samba用户名。

执行命令后输入正确的口令,如果没有口令按Enter键。

如果看到以下提示符:

smb:

\>

证明已经登录成功了。

如果没有使用参数-U,那么当前的用户名就会被发送给远程的Samba。

退出smbclient环境,使用以下命令:

exit

8.5Samba配置参数介绍

在Samba中,除了上述介绍的一些参数外,还有很多参数。

为了使用户更全面地了解Samba,下面介绍一些高级参数的配置。

这些参数如果应用得当,可以帮助用户更加灵活地在网络上应用Samba。

1.宏

在基本配置里有提到一些参数的可以尾随%u、%m,这是Samba里定义的宏,宏由百分号后面加一个字符表示,在具体运作的时候就用实际的参数来代替。

%S=当前服务名

%P=当前服务的根路径

%u=当前服务的用户名

%g=给定%u的所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1