当前位置: 首页 > 科技观察

【博文推荐】RHEL6.5下部署samba企业级文件服务器实战_0

时间:2023-03-12 10:18:03 科技观察

此博文来自博主Y.weisheng。有问题欢迎进入博主专页进行互动讨论!博文地址:http://yuan2.blog.51cto.com/446689/15880851、实验要求:1)使用RPM包安装samba服务2)实现匿名访问,验证文件和目录可读写3)实现指定用户的访问4)实现指定用户的访问,并赋予用户不同的权限5)实现用户别名访问,并测试权限6)实现对特定访问地址的限制7)实现windows系统中共享资源的访问2.实验环境:Linux服务器系统版本:RedHatEnterpriseLinux6.5IP:192.168.10.3Windows客户端系统版本:Windows7Ultimatex64IP:192.168.10.2Samba软件版本:samba-3.6.93。实验步骤:基本安装操作A.挂载系统光盘,安装samba。要安装samba服务,您需要从rpm包中安装它。rpm安装包一般放在系统光盘的Packages目录下。我们首先使用mount命令查看光盘是否挂载到系统中。如果没有Load,则手动将光盘挂载到系统的mnt目录下,检查光盘是否已经挂载在Packages目录下找到samba服务的软件包并安装B.查看samba配置文件安装samba后,我们想要服务器能够按照我们的意愿工作,修改配置文件是很有必要的。可以使用rpm-qc查看某个已安装软件的文档安装位置,发现并没有显示conf配置文件,但根据经验,一般的conf配置文件都会放在/etc目录下。搜索/etc/,在samba/目录下,找到主配置文件smb.conf[root@localhost~]#more/etc/samba/smb.conf查看文件里的内容,发现内容很长,并且有很多注释带#为了方便,可以过滤掉所有带#的行,将过滤后的文件内容另存为另一个文件smb.con:[root@localhost~]#grep-v"#"/etc/samba/smb.conf>/etc/samba/smb.con查看发现已经有smb.con文件,建议不要删除原来以.conf结尾的配置文件。可以改个名字做个备份,以防以后配置出错,可以继续用它修改[root@localhost~]#cd/etc/samba#Switch到samba目录下[root@localhostsamba]#mvsmb.confsmb.??conf.back#备份conf文件[root@localhostsamba]#mvsmb.consmb.conf#将smb.con重命名为smb.conf实现匿名访问,验证可以读写文件,目录[root@localhostsamba]#vismb.conf#打开主配置文件[global]workgroup=MYGROUPserverstring=SambaServerVersion%v;netbiosname=MYSERVER;interfaces=loeth0192.168.12.2/24192.168.13.2/24;hostsallow=127.192.168.12.192.168.13.logfile=/var/log/samba/log.%mmaxlogsize=50security=sharepassdbbackend=tdbsam以上是[global]全局模式的配置内容,其余保持默认即可。我们关心的是如果要实现匿名访问,只需要修改security,使安全级别为share(默认为user)即可。下面是配置share共享目录。在配置文件末尾插入下面一行[share]#指定目录共享名path=/opt/share#指定共享共享目录public=yes#public=guestok,设置为yes允许匿名用户toaccessbrowseable=yes#让匿名用户看到分享的内容writable=yes#设置有写权限createmask=0644#设置新文件的权限,表示所有者有读写权限,其他人只有读权限permissions(rw-r--r--)directorymask=0755#设置新目录的权限,表示属主有读、写和执行权限,其他没有写权限(rwxr-xr-x)A.修改脚本:[root@localhostsamba]#mkdir/opt/share#创建share共享目录[root@localhostsamba]#chmod777/opt/share#修改权限为777[root@localhostsamba]#servicesmbstart#启动samba服务[root@localhostsamba]#netstat-ant#查看网口状态139和445的端口两个samba服务都被监控到,samba服务正常。接下来就可以去客户端测试了。测试前必须关闭防火墙和selinux[root@localhostsamba]#serviceiptablesstopiptables:setthechainasapolicyACCEPT:filter[OK]iptables:clearFirewallrules:[OK]iptables:Uninstallingmodule:[OK][root@localhostsamba]#setenforce0B。效果验证:在客户端电脑上测试能否ping通服务器在【开始】菜单的搜索框中输入\\192.168.10.3,可以看到名为share的共享文件夹进入该文件夹,即可新建文件和文件夹,可以在文件中写入任意内容,也可以在文件夹下新建文件,与配置文件中的设置相同,匿名访问成功。回到服务器,我们查看匿名用户访问共享文件夹时新建的文件,发现所有者和所属组都是nobody,新建文件权限为644,文件夹权限为755。nobody是一个系统帐户并匿名访问新创建的文件。会显示为nobody#p#实现指定用户的访问,因为需要指定用户访问,所以只需要在[global]全局模式下修改security即可,默认安全级别为usersecurity=user下面根据具体的共享目录进行配置,在配置文件末尾插入下面一行,创建test目录的共享配置,并防止匿名访问,只有指定用户才能访问[test]#Sharednameofthespecifieddirectorypath=/opt/test#指定共享测试目录browseable=yes#设置可以看到共享内容writable=yes#设置可以有写权限createmask=0644#设置新文件的权限,表示属主有读写权限,其他只有只读权限(rw-r--r--)directorymask=0755#设置新建文件夹的权限,表示拥有者有读写和执行权限,其他s没有写权限(rwxr-xr-x)。当然,系统中的用户也可以访问共享目录。但是这里我们想使用samba自己的账号访问,新建两个samba账号,不设置密码,这样可以作为samba用户使用,但是不能登录系统[root@localhostsamba]#useraddjery#createaccountjery和jene[root@localhostsamba]#useraddjene[root@localhostsamba]#smbpasswd-ajery#SetaccountassambauserandsetpasswordNewSMBpassword:RetypenewSMBpassword:Addeduserjery.[root@localhostsamba]#smbpasswd-ajeneNewSMBpassword:重新输入新的SMBpassword:添加了userjene。[root@localhostsamba]#[root@localhostsamba]#pdbedit-L#查看新建的samba账号信息jery:500:jene:501:[root@localhostsamba]#mkdir/opt/test#创建共享目录test[root@localhostsamba]#chmod777/opt/test#修改权限为777[root@localhostsamba]#servicesmbrestart#重启samba服务,这里也可以使用reload,不过reload是重新加载配置并不会将客户端完全断开,这里使用重启进行测试。关闭SMB服务:[OK]启动SMB服务:[OK]A.修改后的脚本B.效果验证测试前,必须在客户端电脑上清除之前的连接,否则会失败直接进入共享目录,因为的缓存。在【开始】菜单的搜索框中输入\\192.168.10.3\test,弹出对话框。输入jery的账号和密码。jery可以登录并读写测试共享目录。在shared目录下新建一个名为jery的文件,回到服务器查看这个文件的权限,显示为jery#p#实现指定用户的访问,并为该用户分配不同的权限然后在为了测试访问用户的不同权限,在[test]配置中加入如下两行validusers=jery,jene#允许这两个用户访问writelist=jene#只允许jene用户写入A。修改脚本B.效果验证[root@localhostsamba]#servicesmbrestart#重启服务关闭SMB服务:[OK]启动SMB服务:[OK]netuse*/dcleartheconnectionontheclient这一次登录与jery和测试写作文件。这个时候我们已经设置了只有jene可以为什么用jery登录的时候还是可以写入文件呢?我们回到服务器查看配置文件,所以要使配置生效,必须删除writable=yes这一行配置[root@localhostsamba]#servicesmbrestart#重启服务关闭SMB服务:[OK]启动SMB服务:【OK】清除连接(netuse*/d),仍然以jery登录,发现创建文件时拒绝返回服务器,写了一行内容到testfile:[root@localhostsamba]#echo"thisistest">/opt/test/test.txt客户端已经有一个名为test的文件。打开此文件时,添加当一行内容被拒绝时,退出jery,清除连接,然后用jene登录,jene写入文件和文件夹成功#p#实现用户别名访问和测试权限在samba目录下有一个smbusers文件,这个文件就是别名[root@localhostsamba]#vismbusers打开这个文件,在文件末尾添加一行jene=t01t02t03相当于给jene三个别名,将后三个用户名映射到jene,密码不变,实际登录账号还是jene然后在主配置文件的[global]中添加:usernamemap=/etc/samba/smbusers配置映射关联,用户名指向smbusers文件中设置的内容A.修改脚本B.效果验证[root@localhostsamba]#servicesmbrestart#Restartservice关闭SMB服务:[OK]启动SMB服务:[OK]客户端清除连接(netuse*/d),用t01账号登录\\192.168.10.3看到一个名为jene的共享文件夹,因为在全局配置中有一个[homes]家目录谁logsin会共享他的home目录,因为t01还在映射到jene账号,所以jene登录的时候也会看到自己的home目录也被共享了,home目录下的任何共享文件夹都可以。操作时在test文件夹下新建一个名为iamt01的文件,回到服务器查看这个文件的属性。owner和group都是jene,证明登录还是jene,t02和t03登录也是如此。这里没有更多的测试。#p#限制特定访问地址拒绝访问,只需要在主配置文件的[test]中添加一行:hostsdeny=192.168.10.10.0.0。#192.168.10。意思是192.168.10.0是一个网段,这样这个网段的所有主机都无法访问。这里拒绝192.168.10.0和10.0.0.0A两个网段。修改脚本B.效果验证[root@localhostsamba]#servicesmbrestart#重启服务,关闭SMB服务:[OK]启动SMB服务:[OK]这次客户端清除连接(netuse*/d),使用账号t02访问,可以访问其他共享文件夹,但是由于客户端ip地址是192.168.10.2,在test共享文件夹所在网段被拒绝访问,所以打开test文件夹时,提示访问被拒绝在windows系统中实现共享资源的访问,我们在客户端(win7系统)共享一个名为LAMP的文件夹[root@localhostsamba]#smbclient-L192.168.10.2#列出客户端中的共享资源[root@localhostsamba]#mount.cifs//192.168.10.2/LAMP/tmp/#如果要访问这个LAMP文件夹,可以将LAMP挂载到服务器的tmp目录下[root@localhost~]#df-hT#查看挂载情况,已经挂载查看挂载的tmp目录内容,LAMP里面全是tar压缩包[root@localhostsamba]#cp/tmp/apr-1.4.6.tar.gz~#将其中一个copy压缩文件到根目录下(根目录可以是/root也可以直接写成~)[root@localhostsamba]#umount/tmp#卸载tmp目录下挂载的LAMP,卸载后查看tmp目录下的文件和目录原来的tmp目录4.实验总结:1)samba服务在Linux下实现了微软的SMB/CIFS网络协议系统。系统间的文件互访问题使得文件共享变得更加容易,是一个非常强大的功能2)samba服务提供了几个非常实用的访问共享权限,同时也提供了服务器客户端的访问控制。修改配置文件时一定要注意各个权限的配置是否冲突或遗漏,平时多做权限测试。