正如上面简单的 smb.conf 文件所示,与 Windows 用户共享 Linux 驱动器非常容易。然而,与 Samba 的其他所有功能一样,您可以很大程度上控制这些设置。以下是一些示例
要与公众共享目录,请克隆上面的 [tmp] 部分,方法是在 smb.conf 中添加如下内容
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
要使上述目录可供公众读取,但仅可由 staff 组中的人员写入,请按如下方式修改条目
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
write list = @staff
曾经这很容易实现;现在您应该能够启动 Samba 并从 Windows PC 浏览共享。然而,微软最近让使用 Samba 的用户的生活变得稍微困难了一些。Windows 98、Windows NT(Service Pack 3 或更高版本)以及更高版本的 Windows 95 现在默认使用加密密码。Samba 默认使用未加密密码。当客户端或服务器使用加密密码时,您将无法浏览服务器,因为无法匿名建立连接。
如果您尝试连接到共享时看到一个对话框,内容类似于“您未被授权从此计算机访问该帐户”,则可以判断客户端和服务器之间是否存在密码类型不匹配的情况。
您可以配置您的 Samba 服务器以使用加密密码,或者配置 Windows 机器以使用未加密密码。
使 Windows 使用加密的 SMB 密码
Windows 95/98 =============
使用注册表编辑器 (regedit),创建注册表设置 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP 添加一个新的 DWORD 值: 值名称:EnablePlainTextPassword 数据:0x01。
Windows NT ==========
使用注册表编辑器 (regedit),创建注册表设置 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters 添加一个新的 DWORD 值: 值名称:EnablePlainTextPassword 数据:0x01
Windows 2000 ============
使用注册表编辑器 (regedit),创建注册表设置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters 添加一个新的 DWORD 值: 值名称:EnablePlainTextPassword 数据:0x01
完成这些注册表更改后,重新启动 Windows 机器,然后再次尝试映射 Samba 服务器上的网络驱动器。只要 Samba 服务器使用明文密码,它就应该可以工作。
配置 Samba 以使用加密密码
在 /etc/smb.conf 的 [global] 部分中,添加以下行
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
强烈建议您在执行此操作之前阅读 Samba 文档中的 ENCRYPTION.txt、Win95.txt 和 WinNT.txt 文件!
如果您的客户端和服务器都使用加密密码,您将无法浏览服务器上可用的共享,直到使用适当的身份验证建立初始连接。要获得初始连接,请在 Windows 文件管理器或资源管理器对话框中手动输入共享名称,格式为 '\\<hostname>\<sharename>'。使用服务器上有效的用户名和密码登录到服务器!
如果您怀疑您的 NetBIOS 名称服务配置不正确(可能是因为您在尝试连接时收到“找不到主机”错误),请尝试仅使用服务器的 IP 地址:'\\<host ip address>\<sharename>'。
为了使文件名正确显示,您可能还需要在相应的共享部分中设置一些选项。这些选项适用于 Windows 95/98/NT 客户端,但如果您有 Windows 3.X 客户端,则可能需要修改。
; Mangle case = yes seems to give the correct filenames
; for Win95/98/NT.
mangle case = yes
; If samba is case sensitive when looking for files
case sensitive = no
; Default case of files that are created
default case = lower
; Preserve case for all filenames
preserve case = yes
; Preserve case for dos (8.3) filenames
short preserve case = no
有关驱动器共享的其他技巧,请参阅 Samba 文档或 man pages。
interfaces = 192.168.1.1/24
注意:/ 后面的位是对子网掩码的引用。“24”是用于未分段 C 类网络的值。有关子网计算的更多信息,您可能需要查看 http://www.ralphb.net/IPSubnet/。
Samba 配置的内容远不止这些,但这将帮助您入门。如果您想进行更高级的操作,我建议您访问上面提到的 Samba 网站。