SMB 协议
此部分包含以下主题:
有关 SMB 协议的更多信息,请参见以下主题:
有关其他受支持协议的信息,请参见以下各节:
SMB 协议属性
每个共享资源都有特定于协议的属性,这些属性定义了不同的协议针对该共享资源的行为。可以为每个共享资源定义这些属性,也可以从共享资源的项目继承这些属性。下表显示了 SMB 协议属性和可能的值。
表 111 SMB 协议属性
|
|
|
|
Share mode(共享模式)
|
off/rw/ro
|
继承
|
|
Resource name(资源名称)
|
resource_
name/off/on
|
继承
|
显示 SMB 客户机用来引用此共享资源的名称。资源名称 off 表示没有 SMB 客户机可以访问共享资源,资源名称 on 表示共享资源将随文件系统的名称一起导出。
|
Enable Access-based Enumeration(启用基于访问的枚举)
|
abe
|
继承
|
启用后,执行基于访问的枚举。
|
Enable guest access(启用来宾访问)
|
guestok
|
继承
|
启用后,授予来宾访问权限。
|
Is a DFS namespace(是 DFS 名称空间)
|
dfsroot
|
继承
|
指示此共享资源是否置备为单机 DFS 名称空间。
|
Client-side caching policy(客户端高速缓存策略)
|
csc
|
继承
|
指示提供用来支持客户端高速缓存的基于共享资源的配置选项。有关更多信息,请参见 客户端高速缓存属性。
|
|
客户端高速缓存属性
"Client-side caching"(客户端高速缓存)属性 (csc) 用于控制共享资源中的文件和程序是否缓存到本地客户机,以供与设备断开连接时脱机使用。
|
|
|
No caching(不进行高速缓存)
|
none
|
对共享资源禁用客户端高速缓存。共享资源中的任何文件或程序均不能脱机使用。
|
Manual caching(手动进行高速缓存)
|
manual
|
仅指定的文件和程序缓存到本地客户机上,可以脱机使用。联机时,指定的程序从本地客户机运行。本地客户机重新联机时,脱机文件不会自动重新整合。这是默认值。
|
Automatic document caching(文档自动高速缓存)
|
documents
|
可从共享资源访问的所有文件均缓存到本地客户机上,可以脱机使用。本地客户机重新联机时,文件自动重新整合。可从共享资源访问的程序均不可脱机使用,除非之前已经缓存到本地。
|
Automatic program caching(程序自动高速缓存)
|
programs
|
可从共享资源访问的所有程序均缓存到本地客户机上,可以脱机使用。联机时,程序从本地客户机运行。另外,可从共享资源访问的所有文件均缓存到本地客户机上,可以脱机使用。本地客户机重新联机时,文件自动重新整合。
|
|
SMB 协议共享模式的例外情况
通过设置客户机特定的共享模式或例外情况,可为客户机或客户机集合定义全局共享模式的例外情况。要限制特定客户机的访问,请将全局共享模式设置为 none,然后向逐级缩小的组授予逐级增大的访问权限。例如,可以创建一个共享资源,将其全局共享模式设置为 none(无),即拒绝所有客户机的访问;然后向一部分客户机授予只读访问权限。您还可以更进一步向更少的一部分客户机授予读写访问权限,最终,只有受信任的主机可能具有读写访问权限。
表 112 客户机类型
|
|
|
|
Host(FQDN) or Netgroup(主机 (FQDN) 或网络组)
|
none
|
其 IP 地址解析为指定的全限定名称的单个客户机,或包含客户机的 IP 地址解析为的全限定名称的网络组。
|
caji.sf.example.com
|
DNS Domain(DNS 域)
|
.
|
其 IP 地址解析为以此后缀结尾的全限定名称的所有客户机。
|
sf.example.com
|
IPv4 子网
|
@
|
其 IP 地址位于指定的 IPv4 子网(以 CIDR 表示法表示)内的所有客户机。
|
192.0.2.254/22
|
IPv6 子网
|
@
|
其 IP 地址位于指定的 IPv6 子网(以 CIDR 表示法表示)内的所有客户机。
|
2001:db8:410:d43::/64
|
|
对于每个客户机或客户机集合,请指定客户机对共享资源有只读还是读-写权限。
管理网络组-网络组可用于控制对 SMB 导出的访问权限。但是,网络组的管理可能很复杂。请考虑改用 IP 子网规则或 DNS 域规则。
如果使用网络组,则将通过 NIS 或 LDAP 解析它们,具体取决于启用了哪个服务。如果使用 LDAP,则每个网络组必须位于默认位置 ou=Netgroup,(Base DN),并且必须使用标准模式。
网络组条目的用户名组件通常不会影响 SMB;只有主机名有意义。网络组中包含的主机名必须是规范化的,如果使用 DNS 进行解析,则必须是全限定的。也就是说,SMB 子系统将尝试验证请求方客户机的 IP 地址是否可以解析为与指定的 FQDN,或与指定的网络组之一的某个成员匹配的规范化主机名。该匹配必须为严格匹配,包括所有域组件;否则,将不会匹配该例外并将尝试下一个例外。有关主机名解析的更多信息,请参见 DNS。
从 2013.1.0 软件发行版开始,UNIX 客户机用户最多可以属于 1024 个组,而性能丝毫不减。在以前的发行版中,每个 UNIX 客户机用户最多可以属于 16 个组。
SMB 共享模式以及例外情况选项
在 CLI 中,所有 SMB 共享模式和例外都是通过针对 sharesmb 属性使用单个选项字符串指定的。此字符串是逗号分隔的值列表。作为针对 BUI 介绍的全局共享模式的对应体,它应以 ro、rw、on 或 off 之一开头。
表 113 SMB 共享模式值(BUI 和 CLI)
|
|
|
|
无
|
off
|
禁用共享模式。
|
sharesmb=off
|
on
|
共享资源名称是数据集名称,且可供读写或仅可供读取(如果定义了 rw 或 ro SMB 例外情况)。对于所有其他客户机,将禁用共享模式。
|
sharesmb="on,ro=sf.example.com"
|
<resource name>
|
共享资源名称是资源名称,且可供读写或仅可供读取(如果定义了 rw 或 ro SMB 例外情况)。对于所有其他客户机,将禁用共享模式。
|
sharesmb="myshare,ro=sf.example.com"
|
Read/write(读取/写入)
|
on
|
共享资源名称是数据集名称,并且如果没有 SMB 例外情况,则可供所有客户机读写。
|
sharesmb=on
|
rw
|
共享资源名称是数据集名称,且可供所有客户机读写(为其定义了 ro 例外情况的客户机除外)。
|
sharesmb=rw 或 sharesmb="rw,ro=sf.example.com"
|
<resource name>
|
共享资源名称是资源名称,并且如果没有 SMB 例外情况,则可供所有客户机读写。
|
sharesmb=myshare
|
<resource name>,rw
|
共享资源名称是资源名称,且可供所有客户机读写(为其定义了 ro 例外情况的客户机除外)。可以定义也可以不定义 SMB 例外情况。
|
sharesmb="myshare,rw" 或 sharesmb="myshare,rw,ro=sf.example.com"
|
Read only(只读)
|
ro
|
共享资源名称是数据集名称,且仅可供所有主机读取(为其定义了 rw 例外情况的主机除外)。
|
sharesmb="ro,rw=sf.example.com"
|
<resource name>,ro
|
共享资源名称是资源名称,且仅可供所有客户机读取(为其定义了 rw 例外情况的客户机除外)。可以定义也可以不定义 SMB 例外情况。
|
sharesmb="myshare,ro"或sharesmb="myshare,ro,rw=sf.example.com"
|
|
以下示例将所有客户机的共享模式设置为只读。
set sharesmb=ro
可以通过附加 "option=collection" 格式的文本(其中,"option" 是 ro 或 rw)来指定更多的 SMB 例外情况。您不能对 SMB 例外情况授予 root 用户访问权限。客户机集合是由表 114 中的前缀字符,以及一个 DNS 主机名/域名或 CIDR 网络号指定的。
例如,要授予对 sf.example.com 域中的所有主机的读写权限,您可以使用:
set sharesmb="ro,rw=.sf.example.com"
此示例向 IP 地址为 2001:db8:410:d43::/64 和 192.0.2.254/22 的客户机授予只读访问权限:
set sharesmb="on,ro=@[2001:db8:410:d43::/64]:@192.0.2.254/22"
在任何可以使用单个全限定主机名的位置中都可以使用网络组名称。例如,您可以通过以下方式允许对 "engineering" 网络组进行读写访问:
set sharesmb="ro,rw=engineering"
共享资源级 ACL
共享资源级访问控制列表 (Access Control List, ACL) 与共享资源中文件或目录的 ACL 结合使用来确定该文件的有效权限。默认情况下,此 ACL 向每个人授予完全控制权限。此 ACL 在文件上的 ACL 之上又提供了一个访问控制层,以便实现更加复杂的访问控制配置。只有在通过配置 SMB 资源名称导出文件系统后,才可设置此属性。如果未通过 SMB 协议导出文件系统,则设置共享资源级 ACL 不起任何作用。
启用基于访问权限的枚举后,客户机可以看到它们无法打开的文件的目录条目。只有当客户机无权访问该文件时才会过滤掉目录条目。例如,如果客户机尝试打开某个文件进行读/写访问,但 ACL 只授予了读取访问权限,则打开请求将失败,不过条目列表中仍会包括该文件。
有关 ACL 的更多信息,请参见文件系统的访问控制列表。