Debian下如何配置Samba服务器的方法详解

1 介绍
如果某一个单位,他们的桌面计算机必须使用M$ Windows平台的话,那么他们很可能不可避免的需要Windows服务器产品,比如Windows NT Server或者Windows 2000 Server,甚至Windows 2000 Advanced Server。要知道,要合法的拥有这些服务器的软件(按照微软的所谓许可协议购买连接数)的话,再加上昂贵的硬件费用,可并不是一比小费用。如果有一个途径,可以让你在普通硬件的基础上,免费实现Windows NT/2000服务器的功能,你说,何乐而不为呢?
这就是桑巴,一个免费的,强大的,灵活的,轻便的,samba。

2 背景介绍
我的有一台安装了win2000的机器,叫做notepad,它属于workgroup这个工作组。
我的Debian GNU/Linux安装在一台普通的台式计算机上,机器名字叫debian,域名叫test.com。

3 安装

3.1 软件版本
由于我们用的sid的sources.list,所以得到的是2.ArrayArray版+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目录拷贝一个文件。