装了虚拟机redhat后,一直不能使用samba服务器,由于我在公司和在家都要在虚拟机和windows下共享东西(一般是代码),当然可以通过使用windows下的共享再在虚拟机下用mount来解决这个问题,但是这也存在着隐患,一方面不希望自己写的东西被其它人看见,另一方面在windows下设置目录权限可读写也令人超级不爽,因此上网查了下资料,把samba服务器搞定了。现在总结下我的安装。

 

首先在shell下输入rpm -qa | samba 查看是否有下面三个文件

 

#rpm –qa |grep samba

samba-common-3.0.0.15.i386.rpm

samba-client-3.0.0-15.i386.rpm

samba-3.0.0-15.i386.rpm

 

如果没有其中一个的话,就只能安装了,在windows下把镜像文件放入虚拟光驱,虚拟机会自动挂载,然后进入/mnt/cdrom/RedHat/RPMS下输入rpm -ivh samba*.rpm就可以了。

 

由于考虑到安全问题,因此必须设置linux下访问权限密码,因为我一般都是以root身份登录系统,在这里我在redhat下新建了一个账户sumsky,并在shell下输入smbpasswd -a sumsky添加sumsky用户到samba的密码文件中,同时会提示让你输入密码。文件默认存储位置在/etc/samba下,文件名为sampasswd,如果没有,就建一个这样的文件,当然也可以在配置文件smb.conf中修改默认存储位置。这个文件会自动与你的系统的passwd文件相关联的。

 

安装后会在/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

 

好了,现在保存退出。

 

现在剩下的就是开启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

 

把防火墙规则清空,这是懒人的做法,我就是比较懒的那种。

 

现在再试试上面的那二个命令,一般都能连接上去。

 

剩下的就是在windows下输入虚拟机的IP了,打开我的电脑,在状态栏里面输入\\192.168.1.12,会提示输入密码,输入你创建samba用户时创建的密码(不是登录密码,这是两码事,也就是说你有一个账户,有一个登录系统的密码,还有一个登录samba服务器的密码),现在就可以看到久违的linux下的共享目录了。