第二十章 Samba | ||||||||
20.1. 为什么使用 Samba?
20.2. 配置 Samba 服务器 20.2.1. 图形化配置 20.2.1.1. 配置服务器设置 20.2.1.2. 管理 Samba 用户 20.2.1.3. 添加共享 20.2.2. 命令行配置 20.2.3. 加密口令 20.2.4. 启动和停止服务器 20.3. 连接 Samba 共享 |
||||||||
20.1. 为什么使用 Samba?
Samba 使用 SMB 协议通过网络连接来共享文件和打印机. 支持该协议的操作系统包括 Microsoft Windows(通过它的Network Neighborhood)、OS/2、和 Linux。 如果你的网络中既有 Windows 机器又有 Linux 机器,Samba 就会发挥作用。Samba 会允许文件和打印机被你的网络中的所有系统共享。如果你只打算在 Red Hat Linux 机器间共享文件,请参阅NFS。如果你只打算在 Red Hat Linux 机器间共享打印机,请参阅打印机共享。 |
||||||||
20.2. 配置 Samba 服务器
默认的配置文件(/etc/samba/smb.conf)允许用户作为 Samba 共享来查看他们的 Red Hat Linux 主目录。它还把为 Red Hat Linux 配置的打印机作为 Samba 共享打印机来共享。换一句话说,你可以在你的 Red Hat Linux 系统上连接打印机,然后从网络上的 Windows 机器来打印。 |
||||||||
20.2.1. 图形化配置
要使用图形化界面来配置 Samba,使用 Samba 服务器配置工具。要使用命令行来配置,请跳到第 17.2.2 节。 Samba 服务器配置工具是用来管理 Samba 共享、用户、以及基本服务器设置的图形化界面。它修改 /etc/samba/ 目录中的配置文件。没有使用该程序进行的改变都会被保留。 要使用该程序,你必须在运行 X 窗口系统,具备根特权,并且安装了 redhat-config-samba RPM 软件包。要从桌面启动 Samba 服务器配置工具,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「Samba 服务器」,或在 shell 提示(如 XTerm 或 GNOME 终端)下键入 redhat-config-samba 命令。 配置 Samba 服务器的第一步是配置服务器的基本设置和几个安全选项。启动了应用程序后,选择 「首选项」 => 「服务器设置」。「基本」活页标签如 图 17-2所示。 在「基本」标签上,指定计算机应在的工作组以及对计算机的简短描述。它们与 smb.conf 中的 workgroup 和 server string 选项相对应。 「安全」标签包含以下选项:
点击了「确定」后,所做改变会被写入配置文件,守护进程会被重新启动;因此改变会立即生效。 |
||||||||
20.2.1.2. 管理 Samba 用户
Samba 服务器配置工具要求在添加 Samba 用户之前,在充当 Samba 服务器的 Red Hat Linux 系统上必须存在一个活跃的现存用户账号。Samba 用户和这个现存的 Red Hat Linux 用户账号相关联。 要添加 Samba 用户,选择「首选项」 => 「Samba 用户」,然后点击「添加用户」按钮。在 「创建新 Samba 用户」窗口中的本地系统上的现存用户列表中选择「Unix 用户名」。 如果用户在 Windows 机器上有一个不同的用户名,并将从 Windows 机器上登录入 Samba 服务器,请在「Windows 用户名」字段中指定 Windows 用户名。「服务器设置」首选项的「安全」活页上的「验证模式」 必须被设置为「用户」才能是这个选项生效。 你还需要为 Samba 用户配置一个「Samba 口令」,并再键入一次来确认这个口令。即便你选择了为 Samba 使用加密口令,仍建议你为所有用户设置的 Samba 口令不同于他们的 Red Hat Linux 系统口令。 要编辑某个现存用户,从列表中选择它,然后点击「编辑用户」。要删除某个现存的 Samba 用户,选择这个用户,然后点击「删除用户」按钮。删除 Samba 用户不会删除相关的 Red Hat Linux 用户账号。 点击了「确定」按钮后,用户就会被立即修改。 |
||||||||
20.2.1.3. 添加共享
要添加共享,点击「添加」按钮。「基本」活页标签配置以下选项:
在「访问」活页标签上,选择是否要只允许指定的用户来访问共享还是允许所有 Samba 用户来访问共享。如果你选择了要允许指定用户访问,从可用的 Samba 用户列表中选择这些用户。 点击了「确定」按钮后,共享就会立即被添加。
|
||||||||
20.2.2. 命令行配置
Samba 使用 /etc/samba/smb.conf 作为它的配置文件。如果你改变了这个配置文件,这个改变直到你使用 service smb restart 命令重启 Samba 守护进程后才会生效。 要指定 Windows 工作组和对它的简短描述,编辑 smb.conf 文件中的以下几行:
把 WORKGROUPNAME 换成你的机器所属的 Windows 工作组名。BRIEF COMMENT ABOUT SERVER 是可选的,它被用作关于 Samba 系统的 Windows 注释。 要在你的 Linux 系统上创建 Samba 共享目录,在 smb.conf 文件中添加以下几行(根据你和你的系统需要修改了该文件之后):
上面的例子允许用户 tfox 和 carole 从 Samba 客户中读写 Samba 服务器上的目录 /home/share。 |
||||||||
20.2.3. 加密口令
在 Red Hat Linux 9 中,加密口令被默认启用,因为它更安全。如果加密口令没有被使用,纯文本口令就会被使用,它能够被别人使用 网络分组嗅探器来截取。建议你使用加密口令。 Microsoft SMB 协议最初使用纯文本口令。然而,带有服务包 3 或更高的 Windows NT 4.0、Windows 98、Windows 2000、Windows ME、以及 Windows XP 要求加密的 Samba 口令。要在 Red Hat Linux 系统和运行以上 Windows 操作系统的系统间使用 Samba,你可以编辑 Windows 注册器来使用纯文本口令过配置你的 Linux 系统的 Samba 来使用加密口令。如果你选择要修改你的注册器,你必须为你的全部 Windows 机器这么做 — 这很冒险,有可能导致进一步的冲突。为了更高的安全性,推荐你使用加密口令。 要在你的 Red Hat Linux 系统上配置 Samba 使用加密口令,遵循以下步骤:
阅读 /usr/share/doc/samba-<version>/docs/htmldocs/ENCRYPTION.html 来进一步了解有关加密口令的信息。(把 <version> 替换为你安装了的 Samba 版本号码)。 当使用了 passwd 命令后,pam_smbpass PAM 模块能够被用来同步用户的 Samba 口令和他们的系统口令。如果用户启用了 passwd 命令,他用来登录到 Red Hat Linux 系统的口令以及他要连接 Samba 共享所必须提供的口令就会被改变。 要启动这个功能,把以下行添加到 /etc/pam.d/system-auth 的启动 pam_cracklib.so 之下:
|
||||||||
20.2.4.
启动和停止服务器
在通过 Samba 共享目录的服务器上必须运行 smb 服务。 使用以下命令来查看 Samba 守护进程的状态:
使用以下命令来启动守护进程:
使用以下命令来停止守护进程:
要在引导时启动 smb 服务,使用以下命令:
你还可以使用 chkconfig、ntsysv 或 服务配置工具来配置要在引导时启动的服务。详情请参阅第14章 。 |
||||||||
20.3. 连接 Samba 共享
要从 Microsoft Windows 机器上连接 Linux Samba 共享,使用 Network Neighborhood 或图形化文件管理器。 要从 Linux 系统中连接 Samba 共享,从 shell 提示下,键入以下命令:
把 hostname
替换为你想连接的 Samba 服务器的主机名或 IP 地址,把 sharename
替换为你想浏览的共享目录的名称,把 username
替换成系统的 Samba 用户名。输入正确的口令或按 如果你看到了 smb:\> 提示,你就已成功地登录了。登录后,键入 help 来获得一个命令列表。如果你想浏览你的主目录的内容,把 sharename 替换成你的用户名。如果每有使用 -U 选项,当前用户的用户名就会被传递给 Samba。 要退出 smbclient,在 smb:\> 提示下键入 exit。 你还可以使用 Nautilus 来查看你的网络上的可用 Samba 共享。选择面板上的「主菜单」 => 「网络服务器」来查看你的网络上的 Samba 工作组的列表。你还可以在 Nautilus 的「位置:」栏里键入 smb: 来查看工作组。 如图 17-6所示,在网络上每个可用 SMB 工作组旁边都会出现一个图标。 双击工作组图标之一来查看哪个工作组内的计算机的列表。 如你在图 17-7中所见,工作组内每个机器都有一个图标。双击某个图标来查看该机器上的 Samba 共享。如果需要用户名和口令组合,你会被提示输入它们。 你也可以在「位置:」栏内使用以下语法(把 user、password、servername、和 sharename 替换成相应值)来指定用户名和口令的组合:
|
||||||||
|
||||||||