配置 Samba 服务器

SUSEŽ Linux Enterprise Server 中的 Samba 服务器可通过两种不同方式配置:用 YaST 或手动方式。手动配置可提供更详细的信息,但没有 YaST GUI 方便。

使用 YaST 配置 Samba 服务器

要配置 Samba 服务器,请启动 YaST 并选择网络服务+Samba 服务器

初始 Samba 配置

首次启动模块时,Samba 安装对话框将打开以提示您选择几个基本选项来管理服务器,然后在配置结束时提示您输入 Samba root 用户密码。为了在稍后启动,Samba 服务器配置对话框将显示。

Samba 安装对话框包括两个步骤和详细设置(可选):

工作组名或域名

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

Samba 服务器类型

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

币笆

选择是否要启动 Samba 的方式:引导期间还是手动,然后单击确定。然后在最终弹出框中,设置 Samba root 密码

稍后可以在 Samba 配置对话框的启动共享身份选项卡中更改所有设置。

高级 Samba 配置

在 Samba 服务器模块第一次启动时,Samba 配置对话框会在两个初始步骤后立即显示,如第 25.3.1.1 节 “初始 Samba 配置”所述。使用它调整您的 Samba 服务器配置。

编辑配置之后,单击确定保存设置。

启动服务器

启动选项卡中,配置 Samba 服务器的启动。 若想在每次系统引导时启动服务,请选择引导时。 要激活手动启动,请选择手动。 有关启动 Samba 服务器的更多信息,请参见第 25.2 节 “启动和停止 Samba”

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

共享

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

允许用户共享目录使允许的组中的组成员可以与其他用户共享他们拥有的目录。例如,users 用于本地范围,DOMAIN\Users 用于域范围。该用户必须还确保文件系统权限允许访问。最大共享数可限制可以创建的共享的总数。要允许访问用户共享而无需身份验证,请启用允许来宾访问

身份

身份选项卡中,确定与主机关联的域(基本设置)以及是否在网络中使用备用主机名(NetBIOS 主机名)。可以使用 Microsoft Windows Internet Name Service (WINS) 进行名称解析。在这种情况下,激活使用 WINS 进行主机名解析,并确定是否通过 DHCP 检索 WINS 服务器。要设置专家全局设置或设置用户认证(例如,LDAP),请单击高级设置

来自其他域的用户

要使其他域的用户能够访问您的域,在可信域选项卡中进行适当的设置。要添加新域,请单击添加。要除去所选的域,请单击删除

使用 LDAP

在选项卡 LDAP 设置中,您可以确定要用于身份验证的 LDAP 服务器。要测试到 LDAP 服务器的连接,请单击测试连接。要设置专家 LDAP 设置或使用默认值,请单击高级设置

有关 LDAP 配置的更多信息,请参见第 5 章 LDAP—A Directory Service (↑安全指南)。

使用 SWAT 管理 Web

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

[Note]激活 SWAT

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

手动配置服务器

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

global 部分

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

workgroup = TUX-NET

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

os level = 2

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

如果网络中没有任何其他 SMB 服务器(如 Windows 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

共享

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

[cdrom]

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

例 25.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 文件服务器的有效帐户和密码以及自己的主目录,则该用户可以连接到此共享。

例 25.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 一行。

安全性级别

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

共享级安全性 (security = share)

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

用户级安全性 (security = user)

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

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

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

ADS 级别安全性(安全性 = ADS)

在该模式中,Samba 将在 Active Directory 环境中充当域成员。要在该模式中工作,运行 Samba 的计算机需要安装并配置 Kerberos。必须使用 Samba 将该计算机加入到 ADS 领域。该步骤可通过使用 YaST Windows 域成员资格模块完成。

域级安全性 (security = domain)

仅当计算机已加入到 Windows NT 域中时,该模式才能正常工作。Samba 将尝试验证用户名和密码,方法是将其传递到 Windows NT 主或备份域控制器。与 Windows NT 服务器所采用的方式相同。它期望将加密密码参数设置为 yes

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

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