下一页 上一页 目录

7. 与 Windows 机器共享 Linux 驱动器

正如上面简单的 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 网站。


下一页 上一页 目录