28.3. 配置 Samba 服务器

SUSE Linux 中的 samba 服务器可以使用以下两种方法配置:使用 YaST 或手工配置。手工配置可提供更详细的信息,但没有 YaST GUI 方便。

28.3.1. 使用 YaST 配置 Samba 服务器

要配置 Samba 服务器,请启动 YaST 并选择网络服务+Samba 服务器。首次启动模块时,Samba 服务器安装对话框将打开以提示您选择几个基本选项来管理服务器,然后在配置结束时提示您输入 Samba 根用户口令。为了在稍后启动,Samba 服务器配置对话框将显示。

Samba 服务器安装对话框由两步组成:

工作组名或域名

工作组名或域名中选择一个现有名称或输入一个新的名称,然后单击下一步

Samba 服务器类型

在下一步中,指定服务器是否应该充当 PDC,然后单击下一步

稍后,可以在 Samba 服务器配置对话框中使用标识选项卡来更改 Samba 服务器安装的所有设置。

首次启动 Samba 服务器模块时,Samba 服务器配置对话框紧接着Samba 服务器安装对话框显示。它由三个选项卡组成:

启动

启动对话框中,可以设置 Samba 服务器的启动。 若想在每次系统引导时启动服务,请选择引导时。要激活手工启动,请选择手工。有关启动 Samba 服务器的更多信息,请参见第 28.2 节 “启动和停止 Samba”

在此选项卡中,还可以打开防火墙中的端口。为此应选择打开防火墙中的端口。如果有多个网络接口,则请通过单击防火墙细节、选择接口并单击确定来为 Samba 服务选择网络接口。

共享

在此选项卡中,确定要激活的 Samba 共享。存在一些预定义的共享,例如主页和打印机。使用切换状态可在活动不活动之间进行切换。单击添加可添加新共享,单击删除可删除选中共享。

标识

标识选项卡中,确定与主机关联的域(基本设置)以及是否在网络中使用备用主机名(NetBIOS 主机名)。要设置专家全局设置或设置用户鉴定,请单击高级设置

单击完成以结束配置。

28.3.2. 使用 SWAT 管理万维网

Samba 服务器管理的备用攻击是 SWAT(Samba 万维网管理工具)。它提供了一个简单的万维网接口,可用来配置 Samba 服务器。要使用 SWAT,请在万维网浏览器中打开 http://localhost:901 并以 root 用户身份登录。如果没有特殊的 Samba 根帐户,则请使用系统帐户。

[Note]激活 SWAT

Samba 服务器安装完成后,SWAT 将不激活。要激活它,请在 YaST 中打开网络服务+网络服务 (xinetd)、启用网络服务配置、从表中选择 swat,然后单击切换状态(“开”或“关”)

28.3.3. 手工配置服务器

如果想将 Samba 用作服务器,请安装 samba。Samba 的主要配置文件是 /etc/samba/smb.conf。可以将此文件分为两个逻辑部分。[global] 部分包含中央和全局设置。[share] 部分包含各个文件和打印机共享。通过这种方式,可以在 [global] 部分中有区别地或全局地设置有关共享的详细设置,这样可以提高配置文件的结构透明性。

28.3.3.1. global 部分

需要对 [global] 部分的以下参数进行调整以满足网络设置的要求,以便其它计算机能够在 Windows 环境中通过 SMB 访问 Samba 服务器。

workgroup = TUX-NET

此行将 Samba 服务器指派到工作组。将 TUX-NET 替换为您的网络环境的适当工作组。您的 Samba 服务器将出现在其 DNS 名称下,除非此名称已被指派给网络中的任何其它计算机。如果 DNS 名称不可用,请使用 netbiosname=MYNAME 设置服务器名称。有关此参数的详细信息,请参见 mansmb.conf

os level = 2

此参数确定您的 Samba 服务器是否会尝试成为其工作组的 LMB(本地主浏览器)。为了避免现有 Windows 网络受到配置错误的 Samba 服务器的任何影响,应选择非常低的值。有关这一重要主题的详细信息,请参见文件 BROWSING.txtBROWSING-Config.txt,它们位于包文档的 textdocs 子目录下。

如果网络中没有任何其它 SMB 服务器(如 Windows NT 或 2000 服务器),并且您希望 Samba 服务器保留一份本地环境中存在的所有系统的列表,请将 os level 设置为一个较高的值(例如 65)。然后便可以选择您的 Samba 服务器作为本地网络的 LMB。

在更改此设置时,应认真考虑这样做对现有 Windows 网络环境的影响。应该首先在一个孤立网络中或一天中的非重要时间测试这些更改。

wins support 和 wins server

为了将您的 Samba 服务器集成到具有活动 WINS 服务器的现有 Windows 网络中,应启用 wins server 选项并将其值设置为 WINS 服务器的 IP 地址。

如果将您的 Windows 计算机连接到单独的子网,同时又希望它们互相通讯,则需要设置一个 WINS 服务器。要将 Samba 服务器转变为这样的 WINS 服务器,请设置选项 wins support = Yes。确保网络中只有一个 Samba 服务器启用了此设置。切勿在您的 smb.conf 文件中同时启用选项 wins serverwins support

28.3.3.2. 共享

以下示例说明了如何使 CD-ROM 驱动器和用户目录 (homes) 对 SMB 客户机可用。

[cdrom]

为了避免意外地使 CD-ROM 驱动器变得可用,应使用注释标记(在本例中是分号)取消这些行。去除第一列中的分号,以便与 Samba 共享 CD-ROM 驱动器。

例 28.1. CD-ROM 共享

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom]comment

[cdrom] 项是网络上的所有 SMB 客户机均可看到的共享的名称。可以添加一个附加 comment 来进一步说明此共享。

path = /media/cdrom

path 导出目录 /media/cdrom

通过严格限制的默认配置,可使这种共享仅对此系统上存在的用户可用。如果应使此共享对所有用户可用,请向配置中添加一行 guest ok = yes。此设置为网络上的所有用户提供读权限。建议您认真处理此参数。在 [global] 部分使用此参数时更应如此。

[homes]

[home] 共享在这里特别重要。如果用户具有 Linux 文件服务器的有效帐户和口令以及自己的主目录,则该用户可以连接到此共享。

例 28.2. 主共享

[homes]
	comment = Home Directories
	valid users = %S
	browseable = No
	read only = No
	create mask = 0640
	directory mask = 0750
[homes]

只要没有其它共享使用连接到 SMB 服务器的用户的共享名称,就会使用 [homes] 共享指令动态生成一个共享。所生成的共享的名称就是用户名。

valid users = %S

一旦成功建立连接,就会使用共享的具体名称替换 %S。对于 [homes] 共享,用户名始终是 %S。这样就可以将对用户的共享的访问权限严格限制在此用户。

browseable = No

此设置使共享在网络环境中不可见。

read only = No

默认情况下,Samba 通过 read only = Yes 参数来禁止对任何已导出共享的写访问。要使共享可写,请设置值 read only = No,它与 writable = Yes 是等效的。

create mask = 0640

那些不是基于 MS Windows NT 的系统不能理解 UNIX 权限的概念,所以它们在创建文件时不能指派权限。参数 create mask 定义了为新创建文件指派的访问权限。这仅适用于可写共享。事实上,此设置意味着拥有者具有读写权限,且拥有者的主组的成员具有读权限。valid users = %S 禁止读访问,即使该组具有读权限。要使该组能够进行读或写访问,应取消 valid users = %S 一行。

28.3.3.3. 安全性级别

要提高安全性,可以使用口令来保护每个共享访问。SMB 提供了 3 种可能的方式来检查权限:

共享级安全性 (security = share)

严格地为一个共享指派一个口令。任何知道此口令的用户都可以访问此共享。

用户级安全性 (security = user)

这里将用户的概念引入了 SMB。每个用户都必须使用自己的口令在服务器上注册。注册后,服务器可以根据用户名来授予访问各个已导出共享的权限。

服务器级安全性 (security = server):

从客户机来看,Samba 好像是在用户级别方式下工作。但它实际将所有口令查询传递到另一个用户级别方式下的服务器来执行鉴定。此设置需要一个附加参数 (password server)。

共享、用户和服务器级安全性的选择适用于整个服务器。无法既为服务器配置的某些共享提供共享级安全性,同时又为其它共享提供用户级安全性。但是,您可以为系统上每个已配置的 IP 地址运行单独的 Samba 服务器。

有关此主题的详细信息,请参见 Samba HOWTO 文档集。对于一个系统上的多个服务器,应注意选项 interfacesbind interfaces only