FreeBSD 使用手册
上一页 | 第29章 　网络服务器 | 下一页

# 29.9 为 Microsoft® Windows® 客户机提供文件和打印服务 (Samba)

Contributed by Murray Stokely.

## 29.9.1 纵览

Samba 是一个流行的开源软件包， 它提供了针对 Microsoft® Windows® 客户机的文件和打印服务。 这类客户机可以连接并使用 FreeBSD 系统上的文件空间， 就如同使用本地的磁盘一样， 或者像使用本地打印机一样使用 FreeBSD 上的打印机。

Samba 软件包可以在您的 FreeBSD 安装盘上找到。 如果您没有在初次安装 FreeBSD 时安装 Samba， 则可以通过 `net/samba34` port 或 package 来安装。

## 29.9.2 配置

默认的 Samba 配置文件会以 `/usr/local/share/examples/samba34/smb.conf.default` 的名字安装。这个文件必须复制为 `/usr/local/etc/smb.conf` 并进行定制， 才能开始使用 Samba。

`smb.conf` 文件中包含了 Samba 的运行时配置信息， 例如对于打印机的定义， 以及希望共享给 Windows 客户机的 “共享文件系统”。 Samba 软件包包含了一个称为 swat 的 web 管理工具， 后者提供了配置 `smb.conf` 文件的简单方法。

### 29.9.2.1 使用 Samba Web 管理工具 (SWAT)

Samba Web 管理工具 (SWAT) 是一个通过 inetd 运行的服务程序。 因此， 需要把 `/etc/inetd.conf` 中下面几行的注释去掉， 才能够使用 swat 来配置 Samba：

    swat   stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat

如 例 29-1 中所介绍的那样， 在修改了这个配置文件之后， 必须让 inetd 重新加载配置， 才能使其生效。

一旦在 `inetd.conf` 中启用了 swat， 就可以用浏览器访问 connect to http://localhost:901 了。 您将首先使用系统的 `root` 帐号登录。

只要成功地登录进了 Samba 配置页面， 就可以浏览系统的文档， 或从 Globals(全局) 选项卡开始配置了。 Globals 小节对应于 `[global]` 小节中的变量， 前者位于 `/usr/local/etc/smb.conf` 中。

### 29.9.2.2 全局配置

无论是使用 swat， 还是直接编辑 `/usr/local/etc/smb.conf`， 通常首先要配置的 Samba 选项都是：

`workgroup`

  NT 域名或工作组名， 其他计算机将通过这些名字来找到服务器。

`netbios name`

  这个选项用于设置 Samba 服务器的 NetBIOS 名字。 默认情况下， 这是所在主机的 DNS 名字的第一部分。

`server string`

  这个选项用于设置通过 `net view` 命令， 以及某些其他网络工具可以查看到的关于服务器的说明性文字。

### 29.9.2.3 安全配置

在 `/usr/local/etc/smb.conf` 中的两个最重要的配置， 是选定的安全模型， 以及客户机上用户的口令存放后端。 下面的语句控制这些选项：

`security`

  最常见的选项形式是 `security = share` 和 `security = user`。 如果您的客户机使用用户名， 并且这些用户名与您的 FreeBSD 机器一致， 一般应选择用户级 (user) 安全。 这是默认的安全策略， 它要求客户机首先登录， 然后才能访问共享的资源。

  如果采用共享级 (share) 安全， 则客户机不需要用有效的用户名和口令登录服务器， 就能够连接共享的资源。 这是较早版本的 Samba 中的默认值。

`passdb backend`

  Samba 提供了若干种不同的验证后端模型。 您可以通过 LDAP、 NIS+、 SQL 数据库， 或经过修改的口令文件， 来完成客户端的身份验证。 默认的验证模式是 `smbpasswd`， 这也是本章将介绍的全部内容。

假设您使用的是默认的 `smbpasswd` 后端， 则必须首先创建一个 `/usr/local/etc/samba/smbpasswd` 文件， 来允许 Samba 对客户进行身份验证。 如果您打算让 UNIX® 用户帐号能够从 Windows 客户机上登录， 可以使用下面的命令：

    # smbpasswd -a username

> 注意: 目前推荐使用的后端是 `tdbsam`， 您应使用下面的命令来添加用户帐号：

>     # pdbedit -a -u username

请参考 官方的 Samba HOWTO 以了解关于配置选项的进一步信息。 按照前面给出的基本描述， 您应该已经可以启动 Samba 了。

## 29.9.3 启动 Samba

`net/samba34` port 会增加一个新的用于控制 Samba 的启动脚本。 要启用这个脚本， 以便用它来完成启动、 停止或重启 Samba 的任务， 需要在 `/etc/rc.conf` 文件中加入：

    samba_enable="YES"

此外， 也可以进行更细粒度的控制：

    nmbd_enable="YES"

    smbd_enable="YES"

> 注意: 这也同时配置了在系统引导时启动 Samba。

配置好之后， 就可以在任何时候通过下面的命令来启动 Samba 了：

    # /usr/local/etc/rc.d/samba start
    Starting SAMBA: removing stale tdbs :
    Starting nmbd.
    Starting smbd.

请参见 第 11.7 节 以了解关于使用 rc 脚本的进一步信息。

Samba 事实上包含了三个相互独立的服务程序。 您应该能够看到 nmbd 和 smbd 两个服务程序都是通过 `samba` 脚本启动的。 如果在 `smb.conf` 中启用了 winbind 名字解析服务， 则应该可以看到 winbindd 服务被启动起来。

可以在任何时候通过下面的命令来停止运行 Samba：

    # /usr/local/etc/rc.d/samba stop

Samba 是一个复杂的软件包， 它提供了用于与 Microsoft Windows 网络进行集成的各式各样的功能。 要了解关于这里所介绍的基本安装以外的其它功能， 请访问 http://www.samba.org。

上一页 | 起始页 | 下一页
文件传输协议 (FTP) | 上一级 | 通过 NTP 进行时钟同步

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.