<p>之前咱们在windows上共享文件的话,只需右击要共享的文件夹而后选择共享相关的选项 <br />设置便可。然而如何实现windows和linux的文件共享呢?这就涉及到了samba服务了,这 <br />个软件配置起来也不难,使用也很是简单。</p> <p>samba配置文件smb.conf】 <br />通常你装系统的时候会默认安装samba,若是没有安装,只须要运行这个命令安装(CentOS): <br />yum install -y samba samba-client <br />Samba的配置文件为/etc/samba/smb.conf,经过修改这个配置文件来完成咱们的各类需求。 <br />打开这个配置文件,你会发现不少内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部 <br />分:</p> <p>[global] <br />        workgroup=MYGROUP <br />        server string=Samba Server Version%v <br />        security=user <br />        passdb backend=tdbsam <br />        load printers=yes <br />        cups options=raw <br />[homes] <br />        comment=Home Directories <br />         browseable=no <br />        writable=yes <br />[printers] <br />         comment=AllPrinters <br />         path=/var/spool/samba <br />         browseable=no <br />         guestok=no <br />         writable=no <br />         printable=yes <br />主要有以上三个部分:[global],[homes],[printers]。</p> <p>[global] 定义全局的配置,”workgroup”用来定义工做组,相信若是你安装过windows的系统, <br />你会对这个workgroup不陌生。通常状况下,须要咱们把这里的”MYGROUP”改 <br />成”WORKGROUP”(windows默认的工做组名字)。 <br />security=user#这里指定samba的安全等级。关于安全等级有四种: <br />share:用户不须要帐户及密码便可登陆samba服务器 <br />user:由提供服务的samba服务器负责检查帐户及密码(默认) <br />server:检查帐户及密码的工做由另外一台windows或samba服务器负责 <br />domain:指定windows域控制服务器来验证用户的帐户及密码。</p> <p> <br />passdbbackend=tdbsam #passdbbackend (用户后台),samba有三种用户后台: <br />smbpasswd,tdbsam和ldapsam. <br />smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设 <br />置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有</p> <p>时须要手工建立该文件。 <br />tdbsam:使用数据库文件建立用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。 <br />passdb.tdb用户数据库可以使用smbpasswd –a建立Samba用户,要建立的Samba用户必须 <br />先是系统用户。也可以使用pdbedit建立Samba帐户。pdbedit参数不少,列出几个主要的: <br />pdbedit–ausername:新建Samba帐户。 <br />pdbedit–xusername:删除Samba帐户。 <br />pdbedit–L:列出Samba用户列表,读取passdb.tdb数据库文件。 <br />pdbedit–Lv:列出Samba用户列表详细信息。 <br />pdbedit–c “[D]”–uusername:暂停该Samba用户帐号。 <br />pdbedit–c “[]”–uusername:恢复该Samba用户帐号。 <br />ldapsam:基于LDAP帐户管理方式验证用户。首先要创建LDAP服务,设置“passdbbackend <br />=ldapsam:ldap://LDAPServer” <br />loadprinters和cupsoptions两个参数用来设置打印机相关。 <br />除了这些参数外,还有几个参数须要你了解: <br />netbiosname=MYSERVER #设置出如今“网上邻居”中的主机名 <br />hostsallow=127. 192.168.12. 192.168.13.#用来设置容许的主机,若是在前面加”;”则表 <br />示容许全部主机 <br />logfile=/var/log/samba/%m.log#定义samba的日志,这里的%m是上面的netbiosname <br />maxlog size=50#指定日志的最大容量,单位是K</p> <p> </p> <p>[homes] 该部份内容共享用户本身的家目录,也就是说,当用户登陆到samba服务器上时 <br />其实是进入到了该用户的家目录,用户登录后,共享名不是homes而是用户本身的标识 <br />符,对于单纯的文件共享的环境来讲,这部分能够注视掉。</p> <p> </p> <p>[printers] 该部份内容设置打印机共享。</p> <p> </p> <p>【samba实践】 <br />注意:在试验以前,请先检测selinux是否关闭,不然可能会试验不成功</p> <p>【linux的防火墙】 <br />1.selinux</p> <p>Selinux是Redhat/CentOS系统特有的安全机制。不过由于这个东西限制太多,配置也特别繁 <br />琐因此几乎没有人去真正应用它。因此装完系统,咱们通常都要把selinux关闭,以避免引发 <br />没必要要的麻烦。关闭selinux的方法为:</p> <p><a href="http://static.oschina.net/uploads/img/201212/19143018_jgtP.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://static.oschina.net/uploads/img/201212/19143018_5cMA.png" width="576" height="271" /></a></p> <p>把’SELINUX=enforcing’改为’SELINUX=disabled’,而后重启机器。临时关闭selinux的命令为</p> <p><a href="http://static.oschina.net/uploads/img/201212/19143019_gteC.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://static.oschina.net/uploads/img/201212/19143019_lHtC.png" width="336" height="94" /></a></p> <p>getenforce命令能够获得selinux的状态,其中有两种(Enforcing|Permissive),前者表示开放, <br />后者表示关闭,可是会发出警告。setenforce用来设置selinux的状态,后面跟0则设置成 <br />Permissive后面跟1设置成Enforcing。关闭selinux的命令为setenforce0,可是这只是临时 <br />关闭,重启后恢复,想要永久生效,请更改配置文件/etc/selinux/config。</p> <p>1.共享一个目录,任何人均可以访问,即不用输入密码便可访问,要求只读。 <br />打开samba的配置文件/etc/samba/smb.conf <br />[global]部分 <br />把”MYGROUP”改为”WORKGROUP” <br />把”security=user” 修改成“security=share” <br />而后在文件的最末尾处加入如下内容:</p> <p>[share] <br />     comment=shareall <br />     path=/tmp/samba <br />     browseable=yes <br />       public=yes <br />       writable=no</p> <p> </p> <p>mkdir/tmp/samba</p> <p>chmod 777 /tmp/samba <br />启动samba服务 <br />/etc/init.d/smb start</p> <p> </p> <p>测试: <br />首先测试你配置的smb.conf是否正确,用下面的命令 <br />testparm <br />若是没有错误,则在你的windows机器上的浏览器中输入file://IP/share 看是否能访问</p> <p> </p> <p>2.共享一个目录,使用用户名和密码登陆后才能够访问,要求能够读写</p> <p>打开samba的配置文件/etc/samba/smb.conf <br />[global] 部份内容以下: <br />[global] <br />     workgroup=WORKGROUP <br />    serverstring=SambaServerVersion%v <br />    security=user <br />     passdbbackend=tdbsam <br />    loadprinters=yes <br />    cupsoptions=raw <br />而后加入如下内容: <br />[myshare] <br />comment=shareforusers <br />path=/samba <br />browseable=yes <br />writable=yes <br />public=no</p> <p> </p> <p>保存配置文件,建立目录: <br />mkdir/samba <br />chmod777/samba <br />而后添加用户。由于在[globa]中”passdbbackend=tdbsam”,因此要使用”pdbedit” 来增长 <br />用户,注意添加的用户必须在系统中存在。 <br />useradd user1user2 <br />pdbedit-auser1 #添加user1帐号,并定义其密码 <br />pdbedit-auser2 <br />pdbedit-L#列出全部的帐号 <br />测试: <br />打开IE浏览器输入file://IP/myshare/ 而后输入用户名和密码</p> <p> </p> <p>3.使用linux访问samba服务器 <br />Samba服务在linux下一样能够访问。前提是你的linux安装了samba-client软件包。安装完 <br />后就可使用smbclient命令了。 <br />smbclient//IP/共享名-U 用户名</p> <p>如:[root@localhost]#smbclient//10.0.4.67/myshare/-Uuser1 <br />Password: <br />Domain=[LOCALHOST]OS=[Unix]Server=[Samba3.0.33-3.29.el5_6.2] <br />smb:\> <br />出现如上所示的界面。能够打一个”?”列出全部可使用的命令。经常使用的有cd,ls, rm,pwd,tar, <br />mkdir,chown,get,put等等,使用help+命令能够打印该命令如何使用,其中get是下载, <br />put是上传。 <br />另外的方式就是经过mount挂载了: <br />如: <br />mount –t cifs//10.0.4.67/myshare/mnt-ousername=user1,password=123456 <br />格式就是这样,要指定-tcifs//IP/共享名本地挂载点-o后面跟username和password <br />挂载完后就能够像使用本地的目录同样使用共享的目录了。</p>linux