昨天在虚拟机下安装了reahat9.0这个经典的linux版本,但是光有一个虚拟的redhat是不够的,还需要和windows宿主机器实现通信,才能发挥它的能量。我在网上找到一篇介绍用samba服务器的方法实现文件共享的文章,自己摸索了一下,很快解决了这个问题,下面我把自己实现的过程结合文章详述一遍,做个拾遗补漏吧!
1. 在shell下输入rpm -qa | samba 查看是否有下面三个文件
samba-common-3.0.0.15.i386.rpm
samba-client-3.0.0-15.i386.rpm
samba-3.0.0-15.i386.rpm
其实这三个文件的名称不同的Redhat版本有点小小的出入,只要大体相同就可以知道自己已经安装了samba了。
如果没有其中一个的话,就只能安装了,在windows下把镜像文件放入虚拟光驱,虚拟机会自动挂载,然后进入/mnt/cdrom/RedHat/RPMS下输入rpm -ivh samba*.rpm就可以了。
2. 创建访问用户
由于考虑到安全问题,因此必须设置linux下访问权限密码,因为我一般都是以root身份登录系统,在这里我在redhat下新建了一个账户sumsky,并在shell下输入smbpasswd -a sumsky添加sumsky用户到samba的密码文件中,同时会提示让你输入密码。文件默认存储位置在/etc/samba下,文件名为sampasswd,如果没有,就建一个这样的文件,当然也可以在配置文件smb.conf中修改默认存储位置。这个文件会自动与你的系统的passwd文件相关联的。
创建用户的命令是useradd yourname,设置密码为passwd yourname
3.修改配置文件
安装后会在/etc/samba/下出现smb.conf文件,也就是上面说的samba的配置文件,修改其中的各个选项,在这里我把security 值改成user,这样的话在windows下必须输入密码才可以访问Linux共享文件,这正是我想要的。
接下来就是修改smb.conf里面的共享的目录,我留出了[home]这一项,另外修改了最后一个项,其它的就让让他们在前面加上‘;’号,不去管他们。下面是我修改的最后一项配置,其中sumsky就是我上面建立的用户,我共享的目录是/usr。
[myshare]
comment = sumsky's stuff
path = /usr
valid usr = sumsky
public = yes
writable = yes
printable = no
creat mask = 0765
好了,现在保存退出。
shell下输入
#chmod -R 777 /usr
最好加这句,usr文件下的所有文件可读写,可执行
4.开启samba服务器
现在剩下的就是开启samba的服务了
/etc/init.d/smb start
现在不急于到windows下输入ip,先小试牛刀,我windows的IP为192.168.0.11,虚拟机为192.1168.0.12,输入
smbclient -L 192.168.0.11
这个命令的意思就是连接到192.168.0.11的主机,也就是windows.
smbclient -L 192.168.0.12
连接到自身
如果输入这二个命令都没有反映的话,就有可能是redhat防火墙在作怪
输入
iptable –F
注:我完全安装的reahat9.0没有这个命令,若读者没有可以自己在“安全级别设置”里修改为“无防火墙”就可以了,也很方便。
把防火墙规则清空,这是懒人的做法,我就是比较懒的那种。
现在再试试上面的那二个命令,一般都能连接上去。
剩下的就是在windows下输入虚拟机的IP了,打开我的电脑,在状态栏里面输入\\192.168.1.12,会提示输入密码,输入你创建samba用户时创建的密码(不是登录密码,这是两码事,也就是说你有一个账户,有一个登录系统的密码,还有一个登录samba服务器的密码),现在就可以看到久违的linux下的共享目录了。
感觉这种方法文件传输速度很快啊!呵呵