这几天在搞服务器远程备份,是利用本地的VMware的CentOS,定期同步IDC服务器的文件和数据库,在本地用DVD刻录保存。
为了方便在Windows系统下刻录虚拟机CentOS文件系统下的文件,本来有很多种方式,VMware也带了tools,很好用。
但为了练练手,决定搞搞Samba,这是一个解决Windows和Linux系统之间文件共享的工具,详细信息请自行查阅。
写此文的目的是记录一个困扰我一整天的问题,现在解决了,希望能帮大伙儿节省时间。
首先请检查CentOS中是否已安装samba:
root#> yum list | grep ‘samba’
如果有 samba.i386 3.0.33-3.7.el5 installed,说明已安装。
尝试一
我在网上查找了samba配置教程,有一个不需要密码的共享方式的配置文件:
[global]
workgroup = WORKGROUP
netbios name = LeakonCentOS
server string = Leakon’s VMware CentOS 5.3
security = share
[linuxsir]
path = /home/leakon/backup
writeable = yes
browseable = yes
guest ok = yes
我用这个配置文件始终不行,用 \\IPAddress 的方式可以看到共享目录,但无法打开,提示“无效的网络名称”。
我试过修改 /home/leakon 和 /home/leakon/backup 目录的属性,甚至都改为 777,也是这样(这是非常不好的做法)。
尝试二
改用默认配置文件,默认是启用 security = user,也就是用户验证的方式。
我尝试输入CentOS下的帐户名和密码,结果无效!
尝试三
看到网上配置教程说,要用 /usr/bin/smbpasswd -a username 添加用户,然后我创建了一个新的用户名:
root#> /usr/bin/smbpasswd -a leakon_samba
接着输入密码,然后给我这样一个错误提示:
Failed to modify password entry for user leakon_samba
头晕!
然后换成CentOS已有的用户名 leakon,结果就一路顺利,得到 Added user leakon 的回应。
再仔细查看教程,其中有这么一句:samba创建的用户,必须是系统中已存在的用户!
原来如此,难怪创建 leakon_samba 这个用户时出现错误提示了。
接着回到Windows,输入IP查看共享,这回出现另一个问题:
“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”。
崩溃……
我怎么就多重链接了?赶紧Google,还好第一条就找到了解决方案。
解决方案
用 net use 命令可以查看当前用户与网络资源的连接。
删掉这些连接,用下面的命令:
dos> net use * /del /y
然后再次访问……
成功啦!!!
简单总结
在我的这个应用场景下,不用修改配置文件,只要用 /usr/bin/smbpasswd 增加一个系统内已存在的帐户到 samba 的用户系统下,同时分配一个专用密码即可。当你在 Windows 下访问共享目录时,根据你输入的用户名,自动可以打开系统用户的 home 目录,非常方便。
注:能看到共享的服务器,但无法打开目录,可以通过关闭 SELinux 解决。
root@shell> setenforce 0