您的位置:首页 > 职场人生

虚拟机与主机文件共享

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 主机 虚拟机