当前位置:文档之家› SMB服务器配置与使用

SMB服务器配置与使用

一、samba简介SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务,NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。

这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议,这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。

因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在Unix/Linux计算机中安装支持SMB协议的软件。

这样使用Windows的客户端不需要更改设置,就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。

Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。

二、Samba的守护进程1. smbd 监听139 TCP端口设置共享目录、打印等2. nmbd 137. 138 UDP端口管理群组、NetBIOS 等解析工作这里要注意的是fedora9基于安全考虑,把smb和nmb两个服务给分离了,平时我们在使用samba服务的时候,在启动smb服务的同时nmb这个服务也会跟着启动,fedora9中则不然,这就造成了我们设置好fedora9中共享的时候,只能使用\\ip 来访问,而不能使用\\计算机名来访问,解决的办法就是同时启动smb和nmb服务三、软件的安装使用rpm –qa|gerp samba来检查是否安装了samba 软件包,如果没有安装的话请自行安装以下的软件包#rpm –ivh samba-3.2.0-1.pre3.9.fc9.i386.rpm#rpm –ivh samba-winbind-3.2.0-1.pre3.9.fc9.i386.rpm#rpm –ivh samba-common-3.2.0-1.pre3.9.fc9.i386.rpm#rpm –ivh samba-client-3.2.0-1.pre3.9.fc9.i386.rpm#rpm –ivh system-config-samba-1.2.63-1.fc9.noarch.rpm或者你用yum install samba* -y就可以一次搞定了。

四、启动samba服务#service smb start (/etc/init.d/smb start )启动smb服务#service nmb start (/etc/init.d/nmb start )启动nmb服务当然你也可以使用chkconfig –-level smb 35 on 来设置启动级别,这个不多说了。

我们来检查一下是是否正常启动两个服务,使用命令pstree | grep mb显示为如下如果则为正常启动:|-nmbd|-smbd---2*[smbd]|-tomboy---2*[{tomboy}]五、配置smb.conf文件知识点,samba 有四种安全级别,它们分别是:share:用户不需要用户名和就可登陆samba 服务器user:用户需要输入用户名和密码才可以登陆samba服务器server:请自行查资料,不常用,略domain:请自行查资料,不常用,略对于我们小菜来说,我们使用user级别就可以了,如果偷懒的话你可以用share 我们先备份配置文件smb.conf#cp /etc/samba/smb.conf /etc/samba/smb.conf.bak然后查找你的security = user是否为user如果是share的话改为user#vi /etc/samba/smb.confworkgroup = WORKGROUP //设置工作组server string = %U's samba %v //描述信息%U代表当前登陆用户netbios name = fedora //netbios名字,fedora9默认没有启用log file = /var/log/samba/log.%m //日志文件保存路径%m你的windows主机名max log size = 50 //日志最大容量security = user //安全级别,user需要用户名和密码,share级别则不要[share] //建立一个共享名为share的共享comment = samba //描述信息path = /tmp/share //共享路径public = no //是否允许guest用户访问(相当于guest ok = yes/no)writable = yes //是否可写write list = lovehack //可以写入的用户列表(@代表用户组)下面建立共享目录并添加权限#mkdir /tmp/share#chmod 775 /tmp/share#chown lovehack.lovehack /tmp/share六、添加用户并测试共享添加访问samba的用户,命令smbpasswd –a 用户名#smbpasswd –a lovehack //lovehack为事先建立好的用户然后输入两次密码就可以了,注意这里的密码和你登陆系统的密码是不一样的,只是用来访问共享的密码。

现在我们就可以来测试一下配置文件是否正确:testparm 一般是没有什么问题的。

现在我们可以用\\ip或者\\计算机名来访问共享了。

七、解决fedora9中selinux拒绝访问共享的问题在其它版本的linux中(AS5,AS4,Centos)中做如上设置后就可以正常访问共享了,但是在fedora9中却不行,我们只能看到共享,但是访问的时候会出现拒绝访问的情况,这是为什么呢?因为selinux对samba共享做了限制,我们只用把selinux中对samba的限制给解决了就行了,我们做如下设置就OK了,这也是我做此教程的目的:#setsebool –P samba_enable_home_dir on#setsebool –P samba_export_all_ro on#setsebool –P samba_export_all_rw on我们可以用命令getsebool –a | grep samba查看上面三项是否打开,打开的话你的共享应该就正常了。

如果还是出现不能访问的情况,请清除你的防火墙规则:iptables -F //清除规则iptables -L //查看是否清除掉了!smb服务(Linux和windows共享)首先关掉防火墙在终端输入iptables -F或者系统——管理——防火墙——禁用第一步:更改smb.conf我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文件夹;我们要改动一下smb.conf ;首先您要备份一下smb.conf文件;[root@localhost ~]# cd /etc/samba[root@localhost samba]# mv smb.conf smb.confBAK然后我们来重新创建一个smb.conf文件;[root@localhost samba]#touch smb.conf然后我们把下面这段写入smb.conf中;[global]workgroup = RANBEnetbios name = wzlinuxserver string = Linux Samba Server TestServersecurity = share[linuxsir]path = /media/ranbewriteable = yesbrowseable = yesguest ok = yes注解:[global]这段是全局配置,是必段写的。

其中有如下的几行;workgroup 就是Windows中显示的工作组;在这里我设置的是RANBE (用大写);netbios name 就是在Windows中显示出来的计算机名;server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;[linuxsir] 这个在Windows中显示出来是共享的目录;path = 可以设置要共享的目录放在哪里;writeable 是否可写,这里我设置为可写;browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。

如果您不想显示出来,那就设置为browseable=noguest ok 匿名用户以guest身份是登录;在配置完/etc/smb.conf后运行testparm检测配置文件中是否有相应语法错误在samba服务起来后,用smbstatus报告用户使用和登录情况。

在更改过配置文件后,运行/etc/rc.d/init.d/smb restart重读配置文件或者service smb restart第二步:建立相应目录并授权;[root@localhost ~]# mkdir -p /media/ranbe[root@localhost ~]# id nobody显示uid=99(nobody) gid=99(nobody) groups=99(nobody)[root@localhost ~]# chown -R nobody:nobody /media/ranbe注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。

有些系统nobody用户组并非是nobody ;(第三步:启动smbd和nmbd服务器([root@localhost ~]# smbd[root@localhost ~]# nmbd)可省略[root@localhost ~]# service smb restart第四步:查看smbd进程,确认Samba 服务器是否运行起来了;[root@localhost ~]# pgrep smbd1356413568查看Samba服务运行状态:# service smb status)可省略第五步:访问Samba 服务器的共享;在终端上输入―ifconfig eth0 192.168.0.2(要和你的windows在一个IP段)‖为linux配置一个IP。

相关主题