虚拟机与主机文件共享
2010-05-28 13:45
316 查看
转自:http://blueskey.blog.51cto.com/771834/315824
预备知识
1、Windows的文件共享:
windows主机之间使用SMB(Service Message Block 服务信息块 微软开发的协议)
/CIFS(是SMB后续的扩展协议)网络协议实现文件和打印资源的共享,Windows是
无法与UNIX/Linux主机之间实现资 源共享的,因为UNIX/Linux的文件共享是基
于TCP/IP协议的
SAMBA文件共享服务
主要用于跨平台的文件共享,Samba软件实际上是SMB的Linux版本而已,Samba服
务器在UNIX系统中实现了SMB/CIFS协议,通过Samba服务可以实现UNIX/Linux
主机与Windows主机之间的资源共享,包括文件、打印机等。
Samba服务器的两个服务程序
1、smbd 服务程序为客户机提供了服务器中共享资源(目录和文件等)的访问
2、nmbd 服务程序提供了NetBIOS主机名称的解释,NetBIOS为Windows网络中
域或者工作组内的主机进行主机名称的解释
RHEL4 Samba相关的软件包说明
1、默认安装了Samba客户端的软件
2、Samba-common软件包中提供了Samba服务器和客户机中都必须使用的公共文
件
3、samba软件包中包括了Samba服务器程序的所有文件
4、samba-client软件包中提供了Samba客户机的所有文件
5、system-config-samba软件包中提供RedHat公司专门为Samba服务器管理编写
的图形界面的管理程序
smb.conf配置文件说明
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域控制服务器来验证用户的账户和密码
用户目录(smb.conf中的[home])共享设置[homes]共享目录不特指某个目录,而是 表示Samba不同用户的宿主目录
Samba用户的一些说明
1、Samba服务器的用户账号文件保存在/etc/samba/目录中,文件名称是
smbpasswd,该文件只 有root用户有读写的权限。初始状态smbpasswd文
件是不存在的,在第一次用smbpasswd命令创建Samba用户时才自动建立
2、并非是系统用户就可以访问Samba服务器,要想访问Samba服务器,必须
是系统用户并且通过命令将该用户添加成Samba用户
3、Samba用户账号使用独立的smbpassed文件保存用户的账号和加密口令信
息
4、Samba服务器中的用户账号应该具有与其同名的Linux系统用户账号,因
为Samba用户是使用同名的系统账号身份访问Linux系统资源的
5、Samba用户的口令和同名系统用户的口令是独立的,可以相同,亦可不
同,需要分别进行 维护和更改
6、当Samba用户不需要登录Linux系统时,同名的系统用户账号可不设置口令
客户端的命令smbclient,smbclient是Samba服务器的命令行方式的客户端
登录,使用的形式类似于telnet和ftp命令,该命令有两个功能
(1)、显示指定Samba服务器中的共享资源列表
#smbclient -L [Samba服务器IP地址]
(2)、指定用户身份登录到指定服务器的指定共享目录
#smbclient //[Samba服务器IP地址]/[共享目录名称] -U [Samba用户]
客户端的命令smbmount
该命令用于将Samba共享目录挂载到Linux文件系统中
#smbmount //[Samba服务器IP地址]/[共享目录名称] [Linux文件目录名称]
卸载smb文件系统
#umount [Linux文件目录名称]
服务器端命令smbstatus
用于显示当前主机中的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
额外补充的内容
(服务器linux与客户机linux、Windows)
服务器端配置
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 zhangsan //将系统用户zhangsan添加为Samba用户
输入密码,此密码可以与系统用户密码不一样。
#smbpasswd -a lisi
5、配置共享目录
#mkdir /public1 //建立一个共享目录
修改主配置文件
#vi /etc/samba/smb.conf
workgroup =WORKGROUP //必须在同一个工作组中
server string =Samba Server Version %v //显示在客户机上的服务器名称
printcap name=/etc/printcap //这些是共享打印机的配置
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=用户名%密码
补充:Samba Web管理工具swat的安装
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/
预备知识
1、Windows的文件共享:
windows主机之间使用SMB(Service Message Block 服务信息块 微软开发的协议)
/CIFS(是SMB后续的扩展协议)网络协议实现文件和打印资源的共享,Windows是
无法与UNIX/Linux主机之间实现资 源共享的,因为UNIX/Linux的文件共享是基
于TCP/IP协议的
SAMBA文件共享服务
主要用于跨平台的文件共享,Samba软件实际上是SMB的Linux版本而已,Samba服
务器在UNIX系统中实现了SMB/CIFS协议,通过Samba服务可以实现UNIX/Linux
主机与Windows主机之间的资源共享,包括文件、打印机等。
Samba服务器的两个服务程序
1、smbd 服务程序为客户机提供了服务器中共享资源(目录和文件等)的访问
2、nmbd 服务程序提供了NetBIOS主机名称的解释,NetBIOS为Windows网络中
域或者工作组内的主机进行主机名称的解释
RHEL4 Samba相关的软件包说明
1、默认安装了Samba客户端的软件
2、Samba-common软件包中提供了Samba服务器和客户机中都必须使用的公共文
件
3、samba软件包中包括了Samba服务器程序的所有文件
4、samba-client软件包中提供了Samba客户机的所有文件
5、system-config-samba软件包中提供RedHat公司专门为Samba服务器管理编写
的图形界面的管理程序
smb.conf配置文件说明
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域控制服务器来验证用户的账户和密码
用户目录(smb.conf中的[home])共享设置[homes]共享目录不特指某个目录,而是 表示Samba不同用户的宿主目录
Samba用户的一些说明
1、Samba服务器的用户账号文件保存在/etc/samba/目录中,文件名称是
smbpasswd,该文件只 有root用户有读写的权限。初始状态smbpasswd文
件是不存在的,在第一次用smbpasswd命令创建Samba用户时才自动建立
2、并非是系统用户就可以访问Samba服务器,要想访问Samba服务器,必须
是系统用户并且通过命令将该用户添加成Samba用户
3、Samba用户账号使用独立的smbpassed文件保存用户的账号和加密口令信
息
4、Samba服务器中的用户账号应该具有与其同名的Linux系统用户账号,因
为Samba用户是使用同名的系统账号身份访问Linux系统资源的
5、Samba用户的口令和同名系统用户的口令是独立的,可以相同,亦可不
同,需要分别进行 维护和更改
6、当Samba用户不需要登录Linux系统时,同名的系统用户账号可不设置口令
客户端的命令smbclient,smbclient是Samba服务器的命令行方式的客户端
登录,使用的形式类似于telnet和ftp命令,该命令有两个功能
(1)、显示指定Samba服务器中的共享资源列表
#smbclient -L [Samba服务器IP地址]
(2)、指定用户身份登录到指定服务器的指定共享目录
#smbclient //[Samba服务器IP地址]/[共享目录名称] -U [Samba用户]
客户端的命令smbmount
该命令用于将Samba共享目录挂载到Linux文件系统中
#smbmount //[Samba服务器IP地址]/[共享目录名称] [Linux文件目录名称]
卸载smb文件系统
#umount [Linux文件目录名称]
服务器端命令smbstatus
用于显示当前主机中的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
额外补充的内容
(服务器linux与客户机linux、Windows)
服务器端配置
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 zhangsan //将系统用户zhangsan添加为Samba用户
输入密码,此密码可以与系统用户密码不一样。
#smbpasswd -a lisi
5、配置共享目录
#mkdir /public1 //建立一个共享目录
修改主配置文件
#vi /etc/samba/smb.conf
workgroup =WORKGROUP //必须在同一个工作组中
server string =Samba Server Version %v //显示在客户机上的服务器名称
printcap name=/etc/printcap //这些是共享打印机的配置
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=用户名%密码
补充:Samba Web管理工具swat的安装
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/
相关文章推荐
- 【转】虚拟机和主机的文件共享
- 使用虚拟机运行Ubuntu时,主机与宿主机共享文件的方法。
- 虚拟机中Linux与主机共享文件方法
- VM WorkStation 虚拟机中系统如何共享主机中的文件
- vmware workstation 10.0.1主机win7 与虚拟机Ubuntu12.04共享文件的问题
- 【嵌入式Linux学习七步曲之第一篇 Linux主机开发环境】虚拟机下Linux和windows的文件共享――mount方式
- 如何在Windows8(主机)和Unbuntu12.1(虚拟机) 之间共享文件
- 虚拟机和windows主机中的文件共享
- 将虚拟机与主机实现文件共享功能步骤
- 安装VMware Tools 实现虚拟机和实际主机文件共享
- 宿主机与虚拟机的文件共享
- 实现主机的XP系统和虚拟机的ubuntu系统的文件共享
- vmware tools 实现主机与虚拟机共享文件
- VMWare下虚拟机Ubuntu与宿主机windows文件共享
- 主机和虚拟机之间的文件共享
- 虚拟机ubuntu与宿主机windows 文件共享
- 虚拟机和主机共享文件
- 【Linux】虚拟机Ubuntu系统访问主机windows共享文件夹文件类型出错
- VMware配置CentOS-7虚拟机与windows主机之间的文件共享
- kali linux 下安装vmtools来实现虚拟机与主机之间的文件的拖拽共享