1.介绍
如果某一个单位,他们的桌面计算机必须使用M$ Windows平台的话,那么他们很可能不可避免的需要Windows服务器产品,比如Windows NT Server或者Windows 2000 Server,甚至Windows 2000 Advanced Server。要知道,要合法的拥有这些服务器的软件(按照微软的所谓许可协议购买连接数)的话,再加上昂贵的硬件费用,可并不是一比小费用。如果有一个途径,可以让你在普通硬件的基础上,免费实现Windows NT/2000服务器的功能,你说,何乐而不为呢?
——这就是桑巴,一个免费的,强大的,灵活的,轻便的,samba。
2.背景介绍
如果你不是从第一章开始看我的文章,那么我得介绍一下这些情况:
我的有一台安装了Windows2000的机器,叫做notepad,它属于workgroup这个工作组。
我的Debian GNU/Linux安装在一台普通的台式计算机上,机器名字叫debian,域名叫test.com。
3.安装
3.1 软件版本
由于我们用的sid的sources.list,所以得到的是2.99版+3.0Alpha版的samba。其配置方法与以前版本有些不同。
3.2 安装
安装过程非常简单:
# apt-get install samba
系统会问你,请参考这些答案:
用debconf配置samba吗?Yes。
输入工作组名,或者域名:workgroup。
使用口令加密?Yes。
以什么方式运行samba?我们选择默认的daemons方式,让他在后台监听。
创建samba口令库?Yes。
4.小测试
你也许不相信,但是现在,你已经可以在Windows的网上邻居里面看到这台名字叫Debian的Linux主机了!
找到网上邻居的workgroup组,你会发现她确实已经在那里了。怎么样,振奋吧!
不过,你会发现,无论你输入什么用户名和口令,都无法通过验证。那是因为,我们还没有告诉samba,验证哪些用户和口令。
5.快速入门
Samba只有一个配置文件!那就是/etc/samba/smb.conf。
下面这个只有几行的smb.conf,就可以让samba为我们工作!
[global]
log file = /var/log/samba/log.%m
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
6.配置
6.1 检查当前配置
我们的samba现在已经运行了,那么,它正在提供哪些服务呢?如果打开/etc/samba/smb.conf,你可能会觉得内容太多,看不过来了;那好,我们有个命令可以用:testparm。这个命令,可以让我们检查smb.conf的配置是否正确,而且还可以列出一个实际上有效的smb.conf的内容:
# testparm
通过这个命令,你看到了吧,实际上发挥作用的配置,就是那么几行。
6.2 写一个最小的smb.conf
实际上,为了做实验,我们可以写一个更小的smb.conf,就向上一小节里面提到的那样。那个配置文件,可以让samba把/tmp共享,并且可以往里写文件。
好,我们不妨就采用上面这个文件吧,请你先将/etc/samba/smb.conf改名,比如改为smb.conf.backup,然后把上面的内容抄下来,保存为新的/etc/samba/smb.conf。
记住,要是修改后的smb.conf生效,需要重新启动samba:
# /etc/init.d/samba restart
6.3 创建用户
在我们创建用户之前,没有人能够访问samba服务器,就是说,在Windows平台上,无论用什么用户名和口令,都无法访问网上邻居里面的debian这台机器。
我们需要在/etc/samba/目录下面,生成一个文件,名字叫:smbpasswd:
# touch /etc/samba/smbpasswd
然后,使用smbpasswd命令,添加samba用户:
# smbpasswd -a kanaka
New SMB password:
Retype new SMB password:
这时,kanaka就被写进了/etc/samba/smbpasswd文件,kanaka就可以从windows访问samba了。
7.测试
在你的Windows里面,找到网上邻居的debian,用刚才创建的用户,访问它,并向tmp目录拷贝一个文件。怎么样,可以了吧。
8.TODO
这是本文的0.1版,纯粹针对初学者的。
在下一个版本,我将详细描述smb.conf的配置方法,来实现Windows NT/2000服务器的功能。
9.结束语
本文是《Debian服务器设置入门》系列教程之第四章,建议您按照顺序阅读,有问题可以和作者kanaka联系。