1、Windows的文件共享:
windows主机之间使用SMB(Service Message Block 服务信息块 微软开发的协议)
/CIFS(是SMB后续的扩展协议)网络协议实现文件和打印资源的共享,Windows是
主要用于跨平台的文件共享,Samba软件实际上是SMB的Linux版本而已,Samba服
1、smbd 服务程序为客户机提供了服务器中共享资源(目录和文件等)的访问
2、nmbd 服务程序提供了NetBIOS主机名称的解释,NetBIOS为Windows网络中
1、默认安装了Samba客户端的软件
2、Samba-common软件包中提供了Samba服务器和客户机中都必须使用的公共文
3、samba软件包中包括了Samba服务器程序的所有文件
4、samba-client软件包中提供了Samba客户机的所有文件
5、system-config-samba软件包中提供RedHat公司专门为Samba服务器管理编写
1、Samba服务器的主配置文件是smb.conf,在/etc/samba/文件中
2、smb.conf文件中的“#”开头的内容,表示对配置内容的说明性文字;而已
3、查看smb.conf有效配置的命令是
#grep -v "^#" /etc/samba/smb.conf |grep -v "^;"
4、smb.conf中的security的参数说明
share----表示用户不需要账号及密码即可登入Samba服务器
user-----表示由提供服务的Samba服务器负责检查账户及密码(是Samba服务
server---表示检查账户及密码的工作指定由另一台Windows服务器或Samba
domain---表示指定Windows域控制服务器来验证用户的账户和密码
1、Samba服务器的用户账号文件保存在/etc/samba/目录中,文件名称是
2、并非是系统用户就可以访问Samba服务器,要想访问Samba服务器,必须
3、Samba用户账号使用独立的smbpassed文件保存用户的账号和加密口令信
4、Samba服务器中的用户账号应该具有与其同名的Linux系统用户账号,因
5、Samba用户的口令和同名系统用户的口令是独立的,可以相同,亦可不
6、当Samba用户不需要登录Linux系统时,同名的系统用户账号可不设置口令
(1)、显示指定Samba服务器中的共享资源列表
#smbclient -L [Samba服务器IP地址]
(2)、指定用户身份登录到指定服务器的指定共享目录
#smbclient //[Samba服务器IP地址]/[共享目录名称] -U [Samba用户]
客户端的命令smbmount
该命令用于将Samba共享目录挂载到Linux文件系统中
#smbmount //[Samba服务器IP地址]/[共享目录名称] [Linux文件目录名称]
卸载smb文件系统
#umount [Linux文件目录名称]
用于显示当前主机中的Samba服务器的连接状态信息,包括连接服务器的每个
Samba客户端的IP地址、主机名称、登录用户名、锁定的文件等。
实验配置
(宿主机Windows与客户机linux)
1、将宿主机的IP地址改为静态的192.168.12.1,并将一个文件夹设置为共享
2、查看samba客户端软件包是否安装
#rpm -qa|grep samba
输出的信息有
samba-common-3.0.28.0.el4.9
samba-client-3.0.28.0.el4.9 //说明客户端软件是默认安装的
3、若没有安装客户端软件的话,像前面讲述那样安装即可,在此就不重复了
4、查看宿主机的共享资源列表
#smbclient -L 192.168.12.1
或用指定用户身份登录到服务器上
#smbclient //192.168.12.1/book -U funny
服务器端配置
1、配置服务器端的IP地址
#netconfig
输入静态IP地址192.168.12.2
或
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改相应的配置
[esc]
:wq
2、重启网络服务
#service network restart
并查看新的配置是否生效
#ifconfig
3、检查相应的服务软件是否安装了
#rpm -qa |grep samba
输出的信息有
system-config-samba-1.2.21-1.el.1
samba-common-3.0.28-0.el4.9
samba-client-3.0.28-0.el4.9
samba-3.0.28-0.el4.9
4、在服务器端先添加系统用户,在添加同名的Samba用户
#useradd zhangsan
#passwd zhangsan //添加系统用户名为zhangsan的密码
#useradd lisi //该系统用户不添加密码,则它不能登录系统,只能
作为Samba用户使用
输入密码,此密码可以与系统用户密码不一样。
#smbpasswd -a lisi
#mkdir /public1 //建立一个共享目录
修改主配置文件
#vi /etc/samba/smb.conf
workgroup =WORKGROUP //必须在同一个工作组中
server string =Samba Server Version %v //显示在客户机上的服务器名称
load printers=yes
;printing =cups //打印机的接口程序
cups option =raw //打印机接口的方式
log file=/var/log/samba/%m.log //这是日志文件
max log size=50 //日志文件的大小
security =user //权限的级别设置,默认安全级别
找到===============Share Definitions=============
在此打后就是共享文件的定义了,里面会有些范例提供参考的。
接着往下看到
#This one is useful for people to share files
将其下的修改为
[tmp]
comment=Temporary file space //临时文件空间
path=/tmp //文件路径
read only =no //不是只读文件
public=yes //所有用户可见
注意:每项的前面是没有任何符合的,比如 ;或是#。有的话,就删除符号
再往下
#the "staff" group
将其下修改为
[public]
comment=Public Stuff
path=/public1 //文件路径指向上面创建的/public1
public=yes //所有用户可见
read only=yes //是只读文件
write list=@zhangsan //相应组中的成员才有写的权限,但是
有一点必须注意:这是服务器允许,而
不是文件系统允许,所以有些文件是写
不了的,必须到文件上修改权限
注意:每项的前面是没有任何符合的,比如 ;或是#。有的话,就删除符号
再往下,看到有
[myshare] //功能是允许特定的用户使用文件夹
comment=Mary's and Fred's stuff //指定用户
path=/usr/somewhere/shared //必须是已经建好的目录的路径
valid users=mary fred //指定合法用户可以访问上面指定的文件夹
public=no //除了指定用户外的用户看不到
writable=yes
printable=no
create mask=0765
注意:每项的前面是没有任何符合的,比如 ;或是#。有的话,就删除符号
[esc]
:wq
6、测试一下配置是否有误
#testparm
7、启动Samba服务
#service smb start
8、检测
(1)在宿主机Windows-->网上邻居-->\\192.168.12.2,会打开登录界面,用
zhangsan来登录。我在这里遇到了问题,刚开始是连登录界面都没有弹
出,我猜是可能两方面的原因:A.linux防火墙的问题;B.电信弄的上网客户
端作祟。结果将防护墙关了
#/etc/rc.d/init.d/iptables stop //不建议关了防火墙,不过这
是在查问题所在才这样做的
也关闭了数字校园拨号器后,终于弹出登录界面,一阵狂喜····
可是问题又来了,利用zhangsan和密码就是登录不上Samba服务器
初步猜想是要么是连接问题,要么就是/etc/samba/smb.conf配置错误,还
有一个可能就是该用户没有成功添加到Samba服务器上
A.ping服务器,检查连通性,结果是没有问题。查看网上邻居-->工作组计算机
出现了服务器的图标
B.查看/etc/samba/smb.conf配置文件,就安全级别改为
security =share
再点击Windows上的服务器图标,可以看到共享文件,也印证了连通性没问题
但是改为user就不行了,详细看了,没有配置错。
C.那就到了查看是否成功添加了Samba用户了,
#vi /etc/samba/smbpasswd
结果发现里面是空的,没有任何信息,问题就出在这,又一阵狂喜!!!
#smbpasswd -a zhangsan
输入密码
确认密码
再次查看配置文件,检查是否成功配置了用户。
最好终于OK了!!!!
工作没完,还必须继续前进啊
往里面添加新文件,再到服务器上检测是否成功添加了新的文件
#ll /public1
#ll /tmp
#ll /home/zhangsan
(2)linux客户机
修改工作组
#vi /etc/samba/smb.conf
workgroup=WORKGROUP //同服务器一个工作组
查看服务器的共享资源列表
#smbclient -L 192.168.12.2
不用输入密码,直接回车
或
#smbclient -L 192.168.12.2 -U zhangsan%zhangsan
查看共享文件夹的内容
#smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
或
为了方便,将共享文件夹挂载到客户机上
#mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名%密码
swat管理工具必须安装在服务器上,它是以Web界面形式提供了对Samba服务器
的远程管理功能,默认情况下,系统是没有安装的,需要使用命令手工进
行安装
#rpm -ivh samba-swat
设置swat的启动状态
#chkconfig swat on
#service xinetd resart
基于安全考虑,设置swat对客户端访问的限制
#vi /etc/xinetd.d/swat
修改下面内容
only_from=[客户机的IP地址] //接受特定IP地址的客户机管理
客户机要通过swat访问Samba服务器,须注意swat服务的端口默认是901,而且
必须用root用户账号登录
#http://[服务器的IP地址]:901/