{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
samba是smb的一种实现方法,主要用来实现linux系统的文件和打印服务。linux用户通过配置使用samba服务器可以实现与windows用户的资源共享。守护进程smbd和nmbd是samba的核心,在全部时间内运行。nmbd程序使得通过企图计算机可以浏览linux服务器。
1、使用samba服务器需要防火墙开放以下端口
udp137udp138tcp139tcp445#配置防火墙端口
[root@www~]vi/etc/sysconfig/iptables-ainput-mstate--statenew-mtcp-ptcp--dport139-jaccept-ainput-mstate--statenew-mtcp-ptcp--dport445-jaccept-ainput-mstate--statenew-mudp-pudp--dport137-jaccept-ainput-mstate--statenew-mudp-pudp--dport138-jaccept#重启防火墙,使规则生效[root@www~]/etc/rc.d/init.d/iptablesrestart
2、关闭centos6系统的selinux
[root@www~]vi/etc/selinux/config#selinux=enforcing#注释掉#selinuxtype=targeted#注释掉selinux=disabled#增加#:wq保存。#重启系统[root@www~]shutdown-rnow或者init6二、安装samba
1、检查samba服务包是否已安装
[root@www~]rpm-qa|grepsambasamba-3.5.4-68.el6.x86_64samba-common-3.5.4-68.el6.x86_64samba-client-3.5.4-68.el6.x86_64samba4-libs-4.0.0-23.alpha11.el6.x86_64samba-winbind-clients-3.5.4-68.el6.x86_64
说明samba已经安装,如果没有安装,运行下面命令安装
[root@www~]yuminstallsamba
2、配置samba
[root@www~]chkconfigsmbon#设置samba开机自动启动[root@www~]servicesmbstart#启动samba服务[root@www~]/etc/init.d/smbrestart#重启[root@www~]/etc/init.d/smbstop#停止[root@www~]cp/etc/samba/smb.conf/etc/samba/bak_smb.conf_bak#备份[root@www~]cp/etc/samba/bak_smb.conf_bak/etc/samba/smb.conf#恢复[root@www~]vi/etc/samba/smb.conf[global]#找到这一行(全局设置标签),在此行下面添加如下行:workgroup=workgroup#工作组名称改为windows网络所定义的工作组名serverstring=sambaserver#设置samba服务器的主机名称security=user#设置samba服务器安全级别为user,即以账号和口令访问netbiosname=sambaserver#设置samba服务器访问别名#在配置文件的末尾添加以下自定义内容[sambaserver]#在windows网上邻居中看到的共享目录的名字comment=sambaserver#在windows网上邻居中看到的共享目录的备注信息path=/home/sambaserver#共享目录在系统中的位置public=no#不公开目录writable=yes#共享目录可以读写validusers=sambaserver#只允许sambaserver用户访问#保存配置
3、添加访问linux共享目录的账号sambaserver用户家目录为/home/sambaserver,用户登录终端设为/bin/false(即使之不能登录系统)
[root@www~]mkdir-p/home/sambaserver#建立sambaserver文件夹[root@www~]cd/home/sambaserver[root@www~]touchsamba.txt#创建测试文件samba.txt[root@www~]useraddsambaserver-d/home/sambaserver-s/bin/false[root@www~]chownsambaserver:sambaserver/home/sambaserver-r
4、将用户sambaserver添加入到samba用户数据库,并设置登录共享目录的密码为:123456
[root@www~]smbpasswd-asambaservernewsmbpassword:输入该用户用于登录samba的密码retypenewsmbpassword:再次确认输入该密码addedusersambaserver.#备注:这里设置的密码是sambaserver用户登录该机的samba共享的密码,非登陆os的密码;
5、重启samba服务器
[root@www~]/etc/init.d/smbrestart
6、浏览共享信息在windows客户端输入ip或者sambaserver#服务器别名回车之后,会跳出来登录框,输入账号sambaserver,密码123456,即可访问共享目录
至此,centos6linuxsamba服务器配置完成。
服务名:smb配置目录:/etc/sabma/主配置文件:/etc/sabma/smb.conf
问题:如果无法访问共享目录的内容,请把防火墙停止;
[root@www~]serviceiptablesstopswat工具使用
swat是通过浏览器对samba进行管理的工具之一。通过swat,可以在samba允许访问范围内的客户端,用浏览器对服务端的samba进行控制。在线文档的阅览、smb.conf的确认和编辑,以及密码的变更、服务的重启等等都可以通过swat来完成,它的直观让samba变得温和化,对那些不喜欢文本界面管理服务器的朋友来说,是一个强大的工具。
首先,通过yum在线安装swat。
[root@www~]#yum-yinstallsamba-swat#在线安装swat二配置swat
然后编辑/etc/xinetd.d/swat,对其进行配置。本文的原则是只允许内网以及本地的客户端对swat进行访问。
[root@www~]#vi/etc/xinetd.d/swat#编辑swat的配置文件only_from=127.0.0.1#找到此行,在下面添加如下行:only_from=192.168.0.0#添加此行,只允许内网范围对swat进行访问disable=yes#找到此行,将yes改为nodisable=no#变为此状态
启动swat
在启动swat之前,先将防火墙中swat使用的901号端口开放。
[root@www~]#vi/etc/sysconfig/iptables#编辑防火墙规则-arh-firewall-1-input-mstate--statenew-mtcp-ptcp--dport901-jaccept#添加此行开放swat的901端口[root@www~]#/etc/rc.d/init.d/iptablesrestart#重新启动防火墙,使新的规则生效
由于swat的启动是通过超级服务器,所以只要重新启动xinetd即可启动swat。
[root@www~]#/etc/rc.d/init.d/xinetdrestart#重新启动超级服务器,启动swat三测试swat
在服务端启动swat后,我们就可以通过swat允许范围(本文以内网192.168.0.0及本地127.0.0.1为例)内的客户机的浏览器中,通过http://服务器的内网ip:901来访问服务端的swat了。如下所示:
1、在浏览器中输入“http://服务器的内网ip:901”(本文以笔者测试环境的“http://192.168.0.9:901”为例。请各自替换为您的服务器内网ip地址。),然后输入root用户的用户名及密码进入swat的管理首页;
2、确认出现如下swat管理中心的首页:通过swat管理samba与直接修改smb.conf的方式,在本质上并无差异,但通过浏览器访问的方式,可以使samba的管理更加温和化,更加适用于不擅长使用文本界面、直接修改配置文件的朋友。
linux访问windows文件配置通常我们使用samba都是在windows上访问做为samba服务器的linux。但是在某些时候情况会反过来,你可能需要从linux上访问windows共享出来的目录。幸运的是,samba本身也支持这种类型的访问。
要想从linux访问windows上的共享目录,需要安装smbclient工具。在centos上则使用yum命令安装:
[root@www~]#yuminstallsamba-client.i386
安装好smbclient工具,就可以使用mount命令来挂载windows上的共享目录了:
[root@www~]#mount-tcifs-ousername=easwy//windows-server/share/mnt/winshare
在这里我们使用的文件系统类型是cifs(commoninternetfilesystem)而不是smbfs,因为linuxkernel将不再支持smbfs。而从这个网站测试结果来看,smbfs的性能也远不如cifs。
我们所用的mount-tcifs命令其实会调用mount.cifs,如果你在mount时失败,先检查一下你的mount.cifs命令是否存在。
如果windows计算机处于域中,那么在username一项输入你的域用户名domain/username就可以了。windows-server可以是一台计算机的名称,也可以是一个ip地址。
如果想列出windows上的所有共享资源,可以使用命令:这条命令会列出windows服务器上所有的共享目录和文件。
[root@www~]#smbclient-l//windows-server-ueaswysamba主配置文件详解:/etc/sabma/smb.conf
==============================globalsettings=============================
workgroup语法workgtoup=<工作组群>;预设workgroup=mygroup说明设定sambaserver的工作组例workgroup=workgroup和win2000s设为一个组,可在网上邻居可中看到共享
serverstring语法serverstring=<说明>;预设sarverstring=sambaserver说明设定sambaserver的注释其他支持变量t%-访问时间i%-客户端ipm%-客户端主机名m%-客户端域名s%-客户端用户名例serverstring=thisisasambaserver设定出现在windows网上邻居的sambaserver注释为thisisasambaserver
hostsallow语法hostsaoolw=;...预设;hostallow=192.168.1.192.168.2.127.说明限制允许连接到sambaserver的机器,多个参数以空格隔开。表示方法可以为完整的ip地址,如192.168.0.1网段,如192.168.0.例hostsallow=192.168.1.192.168.0.1表示允许192.168.1网段的机器网址为192.168.0.1的机器连接到自己的sambaserver
printcapname语法printcapname=<打印机配置文件>;预设printcapname=/etc/printcap说明设定sambasrever打印机的配置文件例printcapname=/etc/printcap设定sambasrever参考/etc/printcap档的打印机设定
loadprinters语法loadprinters=;预设loadprinters=yes说明是否在开启sambaserver时即共享打印机
printing语法printing=<打印机类型>;预设printing=lprng说明设定sambaserver打印机所使用的类型,37行为目前所支持的类型
guestaccount语法guertaccount=<帐户名称>;预设guertaccount=pcguest说明设定访问sambaserver的来宾帐户(即访问时不用输入用户名和密码的帐户),若设为pcguest的话则为默认为"nobody"用户例guertaccount=andy设定设定访问sambaserver的来宾帐户以andy用户登陆,则此登陆帐户享有andy用户的所有权限
logfile语法logfile=<日志文件>;预设logfile=/var/log/samba/%m.log说明设定sambaserver日志文件的储存位置和文件名(%m代表客户端主机名)
maxlogsize语法maxlogsize=;预设maxlogsize=0说明设定日子文件的最大容量,单位kb这里的预设值0代表不做限制
security语法security=<等级>;预设security=user说明设定访问sambaserver的安全级别共有四种share---不需要提供用户名和密码user----需要提供用户名和密码,而且身份验证由sambaserver负责server--需要提供用户名和密码,可指定其他机器(winnt/2000/xp)或另一台sambaserver作身份验证domain--需要提供用户名和密码,指定winnt/2000/xp域服务器作身份验证
passwordserver语法passwordserver=;预设passwordserver=;说明指定某台服务器(包括windows和linux)的密码,作为用户登入时验证的密码其他此项需配合security=server时,才可设定本参数
passwordlevelusernamelevel语法passwordlevel=<位数>;usernamelevel=<位数>;预设passwordlevel=8usernamelevel=8说明设定用户名和密码的位数,预设为8位字符
encryptpasswords语法encryptpasswords=;预设encryptpasswords=yse说明设定是否对samba的密码加密
smbpasswdfile语法smbpasswdfile=<密码文件>;预设smbpasswdfile=/etc/samba/smbpasswd说明设定samba的密码文件
localmaster语法localmaster=;预设localmaster=no说明设定sambaserver是否要担当lmb角色(lmb负责收集本地网络的browselist资源),通常无特殊原因设为no
oslevel=33语法oslevel=<数字>;预设oslevel=33说明设定sambaserver的oslevel.oslevel从0到255.winnt的oslevel为33,win95/98的oslevel是1.若要拿sambaserver当lmb或dmb则它的oslevel至少要大于nt的33以上
domainmaster语法domainmaster=;预设domainmaster=yes说明设定sambaserver是否要担当dmb角色(dmb会负责收集其他子网的browselist资源),通常无特殊原因设为no
preferredmaster语法preferredmaster=;预设preferredmaster=yes说明设定sambaserver是否要担当pdc角色(pdc会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no.(同一网段内不可有两个pdc,他们会每5分钟抢主控权一次)
winssupport语法winssupport=;预设winssupport=yes说明设定sambaserver是否想网络提供wins服务,通常无特殊原因设为no.除非所处网络上没有主机提供wins服务且需要此台sambaserver提供wins服务是才设yes其他winssupport和winsserver只能选择一个
winsserver语法winsserver=;预设winsserver=w.x.y.z说明设定sambaserver是否要使用别台主机提供的wins服务.通常无特殊原因设为no.除非所处网络上有一台主机提供wins服务才要设yes其他winssupport和winsserver例winsserver=192.168.0.1表示sambaserver要使用192.168.0.1提供的wins服务
==============================sharedefinitions=============================
[homes]comment=homedirectoriesbrowseable=nowritable=yesvalidusers=%s
使用者本身的"家"目录,当使用者以samba使用者身份登入sambaserver后,sambaserver底下会看到自己的家目录,目录名称是使用者自己的帐号
[分享的资源名称]<指令1>;=(参数)<指令2>;=(参数)..........................
要提供分享资源时,须先把欲分享的资源以[]符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下
comment---------注释说明path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取printable-------是yes/否no允许打印hidedotftles--是yes/否no隐藏隐藏文件public----------是yes/否no公开共享,若为否则进行身份验证(只有当security=share时此项才起作用)guestok--------是yes/否no公开共享,若为否则进行身份验证(只有当security=share时此项才起作用)readonly-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准writable--------是yes/否no不以只读方式共享当与readonly发生冲突时,无视readonlyvaildusers-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)invalidusers---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)readlist-------设定此名单内的成员为只读(用户名/@组名)writelist------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)createmask-----建立文件时所给的权限directorymask--建立目录时所给的权限forcegroup-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)forceuser------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)allowhosts-----设定只有此网段/ip的用户才能访问共享资源allwohosts=网段exceptipdenyhosts------设定只有此网段/ip的用户不能访问共享资源
allowhosts=本网段指定ip指定ip