正如名称一样的迷人的一个服务,充满了激情。火热的天气中更添加一分悸动,本章就尝试对下面火热的samba服务是要如何破解并掌握于手心中。(本篇当中借鉴了鸟哥私房菜和linux就该这么学还有传说中的中华小题库,通过做题来对于samba进行初步的了解)后续还会添加一篇关于samba服务的文章,作为深度了解。
首先了解下samba的来源,听说作者老道(Tridgwell)本来没准备给这个服务起这个名字。估计是很喜欢热舞便给服务起了一个充满激情的名字“Samba(Server Messae Block )”简称smb,smb服务优势就是激情,window和linux可以相互之间修改文件,嗯美滋滋,其实是他申请时候人家说他申请的名字太low了,哈哈。samba服务程序是一款smb协议并由服务端和客户端组成的开源软件,实现linux和windows系统之间的共享。好了具体信息请去浏览器搜索详细信息,开打开打~
临兵斗者皆阵列在前~
一般情况安装前最好先查看你设备是否已经安装了samba服务(不管什么服务的配置安装前必须先确定好是否已经安装过目标服务)
输入rpm –qa|grep samba没有显示,则表示samba没有安装。
输入yum install samba–3.5.10–125.el6.i686.rpm安装samba
与samba服务器相关的配置文件有:
-
/etc/samba/smb.conf
这是samba的主要配置文件,基本上仅有这个文件,而且这个配置文件本身的说明非常详细。主要的设置包括服务器全局设置,如工作组、NetBIOS名称和密码等级,以及共享目录的相关设置,如实际目录、共享资源名称和权限等两大部分。 -
/etc/samba/lmhosts
早期的 NetBIOS name 需额外设定,因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 檔。 事实上它有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name,因此这个档案不设定也无所谓。 -
/etc/sysconfig/samba
提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。 -
/etc/samba/smbusers
由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定 -
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用户账号/密码时,会用到的数据库档案; -
/usr/share/doc/samba–<版本>
这个目录包含了 SAMBA 的所有相关的技术手册喔!也就是说,当你安装好了 SAMBA 之后,你的系统里面就已经含有相当丰富而完整的 SAMBA 使用手册了!值得高兴吧! ^_^,所以,赶紧自行参考喔!
至于常用的脚本文件案方面,若分为服务器与客户端功能,则主要有底下这几个数据:
-
/usr/sbin/{smbd,nmbd}:服务器功能,就是最重要的权限管理 (smbd) 以及 NetBIOS name 查询 (nmbd) 两个重要的服务程序;
-
/usr/bin/{tdbdump,tdbtool}:服务器功能,在 Samba 3.0
以后的版本中,用户的账号与密码参数已经转为使用数据库了!Samba 使用的数据库名称为 TDB (Trivial DataBase)。
既然是使用数据库,当然要使用数据库的控制指令来处理啰。tdbdump 可以察看数据库的内容,tdbtool 则可以进入数据库操作接口直接手动修改帐密参数。不过,你得要安装 tdb–tools 这个软件才行; -
/usr/bin/smbstatus:服务器功能,可以列出目前 Samba 的联机状况, 包括每一条 Samba 联机的 PID, 分享的资源,使用的用户来源等等,让你轻松管理 Samba 啦;
-
/usr/bin/{smbpasswd,pdbedit}:服务器功能,在管理 Samba 的用户账号密码时, 早期是使用 smbpasswd 这个指令,不过因为后来使用 TDB 数据库了,因此建议使用新的 pdbedit 指令来管理用户数据;
-
/usr/bin/testparm:服务器功能,这个指令主要在检验配置文件 smb.conf 的语法正确与否,当你编辑过 smb.conf
时,请务必使用这个指令来检查一次,避免因为打字错误引起的困扰啊! -
/sbin/mount.cifs:客户端功能,在 Windows 上面我们可以设定『网络驱动器机』来连接到自己的主机上面。在linux上面,我们则是透过 mount (mount.cifs) 来将远程主机分享的档案与目录挂载到自己的linux主机上面哪!
-
/usr/bin/smbclient:客户端功能,当你的 Linux主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用 smbclient来查看啦!这个指令也可以使用在自己的 SAMBA 主机上面,用来查看是否设定成功哩!
-
/usr/bin/nmblookup:客户端功能,有点类似 nslookup 啦!重点在查出 NetBIOS name 就是了
-
/usr/bin/smbtree:客户端功能,这玩意就有点像 Windows
既然提到中华小题库中关于samba的练习那么还是以此为中心进行学习了解,那么问题来了!
在你的服务端上配置SMB服务
您的SMB服务器必须是STAFF工作组的一个成员
共享/common目录共享名必须为common
只有domain1.example.com域内的客户端可以访问common共享
common必须是可以浏览的
用户andy必须能够读取共享中的内容,如果需要的话,验证的密码是flectrag
分析:这个其实算是一个完整samba配置的题目,能够搞定的话samba服务基本也算是可以大概了解了。本着学习为主,有可能还会再开一篇,嗯嗯,也许可能会,然而未必不见得。
好了,准备2台设备或者3个,我用的是7版本的red hat,服务端没什么要求(linux主机一个,window或者linux再来个作为客户端)
步骤如下:
(客户端system1)
[root@system1 ~]# yum install samba samba–client
[root@system1 ~]# mkdir /common
[root@system1 ~]# vim /etc/samba/smb.conf
workgroup = STAFF
[common]
path = /common
hosts allow = 172.24.1.
browseable = yes
[root@system1 ~]# firewall-cmd –permanent –add-service=samba
[root@system1 ~]# firewall-cmd –permanent –add-service=mountd
[root@system1 ~]# firewall-cmd –reload
[root@system1 ~]# chcon –R –t samba_share_t /common(关键)
[root@system1 ~]# smbpasswd –a andy
[root@system1 ~]# systemctl restart smb nmb
[root@system1 ~]# systemctl enable smb nmb
(服务端测试system2)
[root@system2 ~]# yum install samba–client cifs-utils
[root@system2 ~]# smbclient -L //172.24.1.5 -U andy
如果出现无法访问的时候,基本就是防火墙或者selinux的问题,有人会问/etc/samba/smb.conf配置文件怎么不一样,其实就是因为我把很多注释的文件都给过滤了。如果感觉不喜欢的话,可以逐字的添加。
好了,以上就是samba的基本中的基本的知识。目的不是为了能怎样怎样,仅仅为了学习。
原创文章,作者:眼一睁,如若转载,请注明出处:http://www.178linux.com/84896