第21章 其他文件系统
附录 D. OpenPGP 密钥
30.10.用于 Microsoft® Windows® 客户端的文件和打印服务(Samba)
Samba 是一个流行的开源软件包,它使用 SMB / CIFS 协议提供文件和打印服务。该协议内置于 Microsoft® Windows® 系统中。可以通过安装 Samba 客户端库将其添加到非 Microsoft® Windows® 系统中。该协议允许客户端访问共享数据和打印机。这些共享可以映射为本地磁盘驱动器,共享打印机可以像使用本地打印机一样使用。
在 FreeBSD 上,Samba 客户端库可以使用 net/samba413 port 或软件包进行安装。客户端为 FreeBSD 系统提供了访问 Microsoft® Windows® 网络中的 SMB/CIFS 共享的功能。
FreeBSD 系统也可以通过安装相同的 net/samba413 port 或软件包来配置为充当 Samba 服务器。这允许管理员在 FreeBSD 系统上创建 SMB/CIFS 共享,运行 Microsoft® Windows® 或 Samba 客户端库的客户端可以访问这些共享。

30.10.1. 服务器配置

Samba 在 /usr/local/etc/smb4.conf 中配置。必须先创建此文件,然后才能使用 Samba。
此处显示了一个简单的 smb4.conf,用于与工作组中的 Windows® 客户端共享目录和打印机。对于涉及 LDAP 或 Active Directory 的更复杂的设置,使用 samba-tool(8) 创建初始 smb4.conf 会更容易。
1
[global]
2
workgroup = WORKGROUP
3
server string = Samba Server Version %v
4
netbios name = ExampleMachine
5
wins support = Yes
6
security = user
7
passdb backend = tdbsam
8
9
# Example: share /usr/src accessible only to 'developer' user
10
[src]
11
path = /usr/src
12
valid users = developer
13
writable = yes
14
browsable = yes
15
read only = no
16
guest ok = no
17
public = no
18
create mask = 0666
19
directory mask = 0755
Copied!

30.10.1.1. 全局设置

描述网络的设置添加到 /usr/local/etc/smb4.conf 中:
  • workgroup
    要提供服务的工作组的名称。
  • netbios name
    已知 Samba 服务器的 NetBIOS 名称。默认情况下,它与主机 DNS 名称的第一个组件相同。
  • server string
    将在 net view 的输出中显示的字符串,以及一些其他网络工具,这些工具试图显示有关服务器的描述性文本。
  • wins support
    Samba 是否将充当 WINS 服务器。不要在网络上的多台服务器上启用对 WINS 的支持。

30.10.1.2. 安全设置

/usr/local/etc/smb4.conf 中最重要的设置是安全模型和后端密码格式。这些指令控制选项:
  • security
    最常见的设置是 security = sharesecurity = user。如果客户端使用的用户名与它们在 FreeBSD 机器上的用户名相同,则应使用用户级安全性。这是默认的安全策略,它要求客户端先登录才能访问共享资源。在共享级别安全性中,客户端在尝试连接到共享资源之前,不需要使用有效的用户名和密码登录到服务器。这是旧版 Samba 的默认安全模型。
  • passdb backend
    Samba有几种不同的后端认证模式。客户端可以通过 LDAP、NIS+、SQL 数据库或修改后的密码文件进行认证。推荐的身份验证方法 tdbsam 非常适合于简单的网络,本文将对此进行介绍。对于更大或更复杂的网络,建议使用 ldapsamsmbpasswd 是以前的默认值,现在已经过时了。

30.10.1.3. Samba 用户

FreeBSD 用户帐户必须映射到 SambaSAMAccount 数据库,Windows® 客户端才能访问共享。使用 pdbedit(8) 可映射现有的 FreeBSD 用户帐户:
1
# pdbedit -a username
Copied!
本节仅提及最常用的设置。有关可用配置选项的其他信息,请参阅 官方 Samba Wiki

30.10.2. 启动 Samba

要在引导时启用 Samba,请将以下行添加到 /etc/rc.conf
1
samba_server_enable="YES"
Copied!
现在就启动 Samba:
1
# service samba_server start
2
Performing sanity check on Samba configuration: OK
3
Starting nmbd.
4
Starting smbd.
Copied!
Samba 由三个独立的守护进程组成。nmbd 和 smbd 守护程序都是由samba_enable 启动的。如果还需要 winbind 名称解析,请设置:
1
winbindd_enable="YES"
Copied!
可以随时通过键入以下内容来停止 Samba:
1
# service samba_server stop
Copied!
Samba 是一个复杂的软件套件,其功能允许与 Microsoft® Windows® 网络广泛集成。有关此处说明的基本配置之外的功能的详细信息,请参阅 https://www.samba.org