17.2.2. 命令行配置

Samba 使用 /etc/samba/smb.conf 作为它的配置文件。如果你改变了这个配置文件,这个改变直到你使用 service smb restart

要指定 Windows 工作组和对它的简短描述,编辑 smb.conf

workgroup = WORKGROUPNAMEserver string = BRIEF COMMENT ABOUT SERVER

WORKGROUPNAME 换成你的机器所属的 Windows 工作组名。BRIEF COMMENT ABOUT SERVER

要在你的 Linux 系统上创建 Samba 共享目录,在 smb.conf

[sharename]comment = Insert a comment herepath = /home/share/valid users = tfox carole

上面的例子允许用户 tfox 和 carole 从 Samba 客户中读写 Samba 服务器上的目录 /home/share。


17.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 使用加密口令,遵循以下步骤:

  1. 为 Samba 创建一个单独的口令文件。要根据你的现存 /etc/passwd
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

如果系统使用 NIS,键入以下命令:

ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

mksmbpasswd.sh 脚本和 samba 软件包一起被安装在你的 /usr/bin

  1. 改变 Samba 口令文件的权限许可,因此只有根用户才有读写权限:
chmod 600 /etc/samba/smbpasswd
  1. 这个脚本不会把用户口令复制到新文件,Samba 用户账号在没有设置口令之前不会被激活。为了更高的安全性,建议你把用户的 Samba 口令设置为不同于用户的 Red Hat Linux 口令的口令。要设置每个 Samba 用户的口令,使用以下命令(把 username
smbpasswd username
  1. 加密口令必须在 Samba 配置文件中被启用。在 smb.conf
encrypt passwords = yessmb passwd file = /etc/samba/smbpasswd
  1. 在 shell 提示下键入 service smb restart 来确定 smb
  2. 如果你想让 smb 服务被自动启动,使用 ntsysv、chkconfig、或 服务配置工具来在运行时间启用它。详情请参阅第14章

窍门

阅读 /usr/share/doc/samba-<version>/docs/htmldocs/ENCRYPTION.html 来进一步了解有关加密口令的信息。(把 <version> 替换为你安装了的 Samba 版本号码)。



当使用了 passwd 命令后,pam_smbpass PAM 模块能够被用来同步用户的 Samba 口令和他们的系统口令。如果用户启用了 passwd

要启动这个功能,把以下行添加到 /etc/pam.d/system-auth 的启动 pam_cracklib.so

password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass


17.2.4. 启动和停止服务器

在通过 Samba 共享目录的服务器上必须运行 smb

使用以下命令来查看 Samba 守护进程的状态:

/sbin/service smb status

使用以下命令来启动守护进程:

/sbin/service smb start

使用以下命令来停止守护进程:

/sbin/service smb stop

要在引导时启动 smb

/sbin/chkconfig --level 345 smb on

你还可以使用 chkconfig、ntsysv服务配置工具来配置要在引导时启动的服务。