文件和打印机共享是局域网最常用的功能。同一网络下,如果所有的主机都是windows系统,那么很容易实现文件和打印机的共享,但在实际的网络中,不仅会有windows主机也还有linux主机,在这种情况下,Samba服务器就发挥了重大的作用:它其实是专门用于windows和linux之间进行共享文件和打印机的一个软件包,当然其功能远飞如此。这里我们主要介绍实现文件的共享功能。
其中有一个非常重要协议SMB(Server Message Block),把linux伪装成windows一样使其和windows可以互相通信。
下面我们主要学习:
1、掌握Samba服务器的安装和配制方法。
2、掌握linux与windows的资源共享和互访方法。
3、了解使用Samba共享用户认证和文件系统
一、虚拟机的安装。这里虚拟机的安装比较简单:
第一步:我们可以下载一个VMware Workstation(中文名“威睿工作站”),是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的平台。点击安装,网上有很多破解版的资源。
第二步:安装虚拟机。
(1)我们可以在Redhat官方网站或者Chinaunix论坛上下载RedHat的.iso镜像文件,进入VMware Workstation10操作平台,然后点击“创建新的虚拟机”:
(2)可以选择典型或者选择“自定义(高级)(c)”,通常情况下选择典型,然后“下一步”:
(3)选择“安装程序光盘映像文件(iso)(M)”,这一步把我们下载Redhat.iso文件加载到此处;
(4)在”此虚拟机的内存“中,可以调节虚机的内存大小,参考PC机的实际内存大小,建议虚机的内存选择”2048“或者”4096“。一般选择2G,2048M就可以了然后选择”下一步“:
(5)“已准备好创建虚拟机”,点击“完成”就可以完成创建虚拟机了。
这时候需要等待一些时间,到这里我们的Redhat虚拟机就算安装成功了!
二、Samba服务器的安装:
安装好虚拟机以后,我们需要查看系统内是否有安装samba服务器:
(1)、检测samba有无安装
rpm -q samba
如果没有安装,则会显示“no samba package”.
查看samba相关联的包
rpm -qa | grep samba
(2)、如果没有安装这里我们进行Samba服务器的安装;
如果上面查询出由安装但是不完全的时候,我们需要对其进行卸载:卸载命令:rpm -e samba.client-3.5.4 //等等一些;
然后将含有samba服务器文件的的光盘文件挂载在系统的/mnt目录下,这里需要注意的是主要要把cdrom驱动器连接,在右下角有个光盘符号,必须设置为连接状态,
不然这里会出现一个错误:你的分区总是挂载不上,总提示“mount:you must specify the filesystem type”的错误。
然后在虚拟机设置里,将含有Samba.iso的文件加载到CDROM目录下。最后在使用命令: mount /dev/cdrom /mnt
cd /mnt
与Samba想关联的包一般放在/mnt/Server/Packages里面;
我们可以用一下命令查询Smaba相关文件的信息:
ls |grep samba
这样就会列出与samba相关的包信息。
然后我们用命令安装就可以了:
rpm -ivh samba*;
或者一个一个安装都行。到这里samba服务器就算安装完事了!
三、Red Hat Samba服务器的配置详解:
1、Samba配置文件应存放在:
/etc/samba/smb.conf //一般其配置文件都放在这里面;
如果不知道其路径;可以用find/whereis来查找;
2、samba的配置文件:
“#”注释的行,都是介绍信息和描述;
“;”号来注释为有效设置行;
3、设置格式:
[段名]
设置项=值;
4、配置文件里包括五个设置段:
(1)[global] 设置全局环境选项;整体设置;
>workgroup= 指定工作域或组
>server string =描述信息,在windows你登录以后,会有描述信息;
>security:(samba主要用于内网)
#share 去权限验证;
#user 缺省的设置;由linux Samba服务器做验证;(推荐,在服务器端来验证,设置用户名和密码)
#server 第三方主机验证;
#domain 第三方主机验证,(第三方必须是windows域控制器)
>>hosts allow= 限定主机访问
a、那些主机访问[允许优先,如果允许和禁止都有,那么是可以访问的]
hosts allow 如果注释掉所有的主机都可以访问;192.168.12 192.168.13 www.baidu.com
hosts deny www.baidu.com //禁止百度访问
b、那些用户访问
(2)[homes]设置用户宿主目录共享;[每一个用户都可以访问samba服务器你的宿主目录,默认是开启的]
comment= Home[宿主目录的描述]
browseable= no无权限共享目录隐藏,是否可看
writeable= yes [只读或者可写的]
(3)[printers] 设置打印机共享;
(4)[sharefiles] 设置文件共享;
(5)log file= 指定日志文件存放位置
log file的启用十分有必要,可以知道有那些主机在访问该linux服务器。
max log size= 58指定日志文件大小;
如果超过了58k,则删除旧的存储新的;
在查看配置文件的时候,由于文件里的注释比较多,我们可以将以#号开始的行都去掉:
grep -V "^#" /etc/samba/smb.conf >/etc/samba/smb.conf
另外一个比较好的习惯是,我们在修改配置文件的时候最好对文件进行备份。
copy /etc/samba/smb.conf /etc/samba/smb.conf.bak
配置完事儿以后我们可以通过下面的命令来检查语法错误:
testparm//检查语法和目录
输入回车看配置文件;
5、启动、停止、重启samba服务:
/etc/rc.d/init.d/smb start
/etc/rc.d/init.d/smb stop
/etc/rc.d/init.d/smb restart
或者:
service smb start
service smb stop
service smb restart
Samba有两个守护进程:smbd 和nmbd
---smbd监听139TCP端口【处理 SMB请求包,负责用户验证和文件共享】
---nmbd监听137和138UDP端口【查看有哪些目录,用于处理浏览共享和计算机名称解析】
四、测试访问
1、Windows客户端访问samba服务器共享资源:
“开始” - “运行” ,输入 \\Samba服务器地址
2、在linux查看Samba访问的客户端信息
smbstatus
查看日志:ls /var/log/samba
3、windows本地查看远程连接是否
net use
本地关闭远程连接:
net use * /delete /y
再次登录:会话断开;这里主要是我们的用户改变的时候需要删除之前的用户信息,因为windows默认的情况下记录了上一次登录用户的信息,这里可以用下面
两条命令可以避免重启机器。
(1) net use * /delete /y 不用问我确认;
(2) net use * /del 最后再确认: y;
这里比较完整地概括性叙述了Redhat系统和samba服务器的安装及应用!后面将会继续讲解一些细节问题。
rpm -q samba
rpm -qa | grep samba
rpm -e samba.client-3.5.4 //等等一些;
mount /dev/cdrom /mnt
cd /mnt
ls |grep samba
rpm -ivh samba*;
/etc/samba/smb.conf //一般其配置文件都放在这里面;
grep -V "^#" /etc/samba/smb.conf >/etc/samba/smb.conf
copy /etc/samba/smb.conf /etc/samba/smb.conf.bak
testparm//检查语法和目录
/etc/rc.d/init.d/smb start
/etc/rc.d/init.d/smb stop
/etc/rc.d/init.d/smb restart
service smb start
service smb stop
service smb restart
smbstatus
ls /var/log/samba
net use
net use * /delete /y
(1) net use * /delete /y 不用问我确认;
(2) net use * /del 最后再确认: y;