Samba配置文件详解

smb.conf

  • 名字
  • 摘要
  • 如何应用配置更改
  • 文件格式
  • 部分说明
  • 特别部分
    • [global] 部分
    • [homes]部分
    • [printers]部分
  • 用户共享
  • 参数
  • 变量替换
  • 名称修改
  • 基于注册表的配置
  • 身份映射注意事项
  • 各参数说明
  • 警告
  • 版本
  • 参见
  • 作者

本文翻译自Manual page smb.conf(5),由于文档过长,仅对本人关心的部分做了部分翻译,原文地址:https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

名字

smb.conf - Samba 套件的配置文件

摘要

smb.conf 文件是 Samba 套件的配置文件。 smb.conf 包含 Samba 程序的运行时配置信息。 此处包含文件格式和可能参数的完整描述以供参考。

如何应用配置更改

Samba 套件包括许多不同的程序。 其中一些以客户端模式运行,另一些是向其客户端提供各种服务的服务器守护进程。 smb.conf文件的处理方式如下:

  • Samba 套件的客户端应用程序只读取一次它们的配置。 启动后所做的任何更改都不会反映在已经运行的客户端代码的上下文中。
  • Samba 套件的服务器守护程序在请求时重新加载其配置。 然而,已经激活的连接不会改变它们的配置。 更多详细信息可以在 smbd(8) 和 winbindd(8) 手册页中找到。

要请求 Samba 服务器守护程序刷新其配置,请使用 smbcontrol(1) 实用程序。

文件格式

该文件由部分参数组成。 一个部分以方括号中的部分名称开始,一直持续到下一个部分开始。 部分包含以下形式的参数

参数名称 = 参数值

该文件是基于行的——也就是说,每个以换行符结尾的行代表一个注释、一个部分或一个参数。

部分名称和参数名称不区分大小写。

只有参数中的第一个等号有意义。 第一个等号之前或之后的空格将被丢弃。 部分名称和参数名称中的前导、尾随和内部空格无关紧要。 参数值中的前导和尾随空格被丢弃。 参数值中的内部空白将被逐字保留。

任何以分号 (“;”) 或井号 (“#”) 字符开头的行都将被忽略,仅包含空格的行也是如此。

任何以“\”结尾的行都以惯用的 UNIX 方式在下一行继续。

等号参数后面的值都是字符串(不需要引号)或布尔值,可以给出yes/no、1/0 或true/false。 大小写在布尔值中不重要,但在字符串值中保留。 某些项目(例如创建掩码)是数字的。

部分说明

配置文件中的每个部分(除了 [global] 部分)都描述了一个共享资源(称为“共享”)。 部分名称是共享资源的名称,部分中的参数定义共享属性。

有 [global]、[homes] 和 [printers] 三个特殊部分,分别在特殊部分下进行说明。 以下注释适用于普通部分说明。

共享由一个允许访问的目录和一个授予服务用户的访问权限的描述组成。 一些内部选项也是可指定的。

部分是文件共享(客户端用作其本地文件系统的扩展)或打印机共享(客户端用于访问运行服务器的主机上的打印服务)。

部分可以被指定为访客服务,在这种情况下,访问它们不需要密码。 在这种情况下,使用指定的 UNIX 来宾帐户来定义访问权限。

访客服务以外的部分需要密码才能访问。 客户端提供用户名。 由于较旧的客户端仅提供密码而不提供用户名,因此您可以使用共享定义中的 user = 选项指定用户名列表以检查密码。 对于 Windows 95/98/ME/NT/2000 等现代客户端,这不是必需的。

服务器授予的访问权限被主机系统授予指定或来宾 UNIX 用户的访问权限所掩盖。 服务器授予的访问权限不会超过主机系统授予的权限。

以下示例部分定义了文件共享。 用户对路径 /home/bar 具有写入权限。 通过共享名 foo 访问共享:

[foo]
path = /home/bar
read only = no

以下示例部分定义了一个打印机共享。 共享是只读的,但可打印。 也就是说,唯一允许的写访问是通过调用打开、写入和关闭假脱机文件。 guest ok 参数意味着将允许作为默认来宾用户(在别处指定)进行访问:

[aprinter]
path = /usr/spool/public
read only = yes
printable = yes
guest ok = yes

特别部分

[global] 部分

此部分中的参数适用于整个服务器,或者是未专门定义某些项目的部分的默认值。 有关详细信息,请参阅参数下的注释。

[homes]部分

如果配置文件中包含一个名为 [homes] 的部分,则服务器可以动态创建将客户端连接到其主目录的服务。

发出连接请求时,将扫描现有部分。 如果找到匹配项,则使用它。 如果未找到匹配项,则将请求的部分名称视为用户名并在本地密码文件中查找。 如果名称存在并且已提供正确的密码,则通过克隆 [homes] 部分来创建共享。

然后对新创建的共享进行一些修改:

  • 共享名称从 home 更改为找到的用户名。
  • 如果没有给出路径,则路径设置为用户的主目录。

如果您决定在 [homes] 部分中使用 path = 行,则使用 %S 宏可能很有用。 例如:

path = /data/pchome/%S

如果您的 PC 的主目录与 UNIX 访问的主目录不同,这将很有用。

这是一种快速而简单的方法,可以让大量客户轻松访问他们的主目录。

[homes] 部分可以指定普通服务部分可以指定的所有参数,尽管有些参数比其他参数更有意义。 以下是一个典型且合适的 [homes] 部分:

[homes]
read only = no

重要的一点是,如果在 [homes] 部分中指定了访客访问权限,则所有主目录都将对所有客户端可见,而无需密码。 万一这实际上是可取的,明智的做法是还指定只读访问。

自动主目录的可浏览标志将继承自全局可浏览标志,而不是 [homes] 可浏览标志。 这很有用,因为这意味着在 [homes] 部分设置 browseable = no 将隐藏 [homes] 共享,但使任何自动主目录可见。

[printers]部分

此部分的工作方式类似于 [homes],但适用于打印机。

如果配置文件中出现 [printers] 部分,则用户可以连接到本地主机的 printcap 文件中指定的任何打印机。

发出连接请求时,将扫描现有部分。 如果找到匹配项,则使用它。 如果未找到匹配项,但存在 [homes] 部分,则按上述方式使用它。 否则,请求的部分名称将被视为打印机名称,并扫描相应的 printcap 文件以查看请求的部分名称是否是有效的打印机共享名称。 如果找到匹配项,则会通过克隆 [printers] 部分来创建新的打印机共享。

然后对新创建的共享进行一些修改:

  • 共享名称设置为找到的打印机名称
  • 如果未给出打印机名称,则将打印机名称设置为找到的打印机名称
  • 如果共享不允许访客访问且未提供用户名,则将用户名设置为找到的打印机名称。

[printers] 服务必须是可打印的 - 如果您另外指定,服务器将拒绝加载配置文件。

通常,指定的路径是世界可写假脱机目录的路径,并在其上设置了粘性位。 一个典型的 [printers] 条目如下所示:

[printers]
path = /usr/spool/public
guest ok = yes
printable = yes

就服务器而言,printcap 文件中为打印机提供的所有别名都是合法的打印机名称。 如果您的打印子系统不能这样工作,您将不得不设置一个伪 printcap。 这是一个由一行或多行组成的文件,如下所示:

alias|alias|alias|alias...    

每个别名都应该是您的打印子系统可接受的打印机名称。 在 [global] 部分中,将新文件指定为您的 printcap。 服务器只会识别在您的伪 printcap 中找到的名称,当然可以包含您喜欢的任何别名。 可以简单地使用相同的技术来限制对本地打印机子集的访问。

顺便说一下,别名被定义为 printcap 记录的第一个条目的任何组件。 记录由换行符分隔,组件(如果有多个)由竖线符号 (|) 分隔。

注意:在使用 lpstat 确定系统上定义了哪些打印机的 SYSV 系统上,您可以使用 printcap name = lpstat 自动获取打印机列表。 有关详细信息,请参阅 printcap 名称选项。

用户共享

从 Samba 版本 3.0.23 开始,添加了非 root 用户添加、修改和删除他们自己的共享定义的功能。 此功能称为 usershares,由 smb.conf 的 [global] 部分中的一组参数控制。 相关参数为:

  • usershare allow guests
    控制用户共享是否可以允许访客访问。
  • usershare max shares
    允许的用户定义共享的最大数量。
  • usershare owner only
    如果设置只有共享用户拥有的目录可以共享。
  • usershare path
    指向包含用户定义的共享定义的目录。 此目录的文件系统权限控制谁可以创建用户定义的共享。
  • usershare prefix allow list
    逗号分隔的绝对路径名列表,限制可以共享的目录。 仅允许此列表中路径名下方的目录。
  • usershare prefix deny list
    逗号分隔的绝对路径名列表,限制可以共享的目录。 禁止此列表中路径名下方的目录。
  • usershare template share
    命名一个预先存在的共享,用作创建新用户共享的模板。 用户定义的共享定义中未指定的所有其他共享参数均从此命名共享复制。

要允许 UNIX 组 foo 的成员创建用户定义的共享,请创建目录以包含共享定义,如下所示:

切换到root用户:

mkdir /usr/local/samba/lib/usershares
chgrp foo /usr/local/samba/lib/usershares
chmod 1770 /usr/local/samba/lib/usershares

然后添加参数

	usershare path = /usr/local/samba/lib/usershares
	usershare max shares = 10 # (or the desired number of shares)

到您的 smb.conf 的全局部分。 组 foo 的成员然后可以使用以下命令操作用户定义的共享。

  • net usershare add sharename path [comment] [acl] [guest_ok=[y|n]]
    创建或修改(覆盖)用户定义的共享。
  • net usershare delete sharename
    删除用户定义的共享。
  • net usershare list wildcard-sharename
    列出用户定义的共享。
  • net usershare info wildcard-sharename
    打印有关用户定义共享的信息。

参数

参数定义“部分”的特定属性。

某些参数特定于 [global] 部分(例如,security)。 一些参数可用于所有部分(例如,create mask)。 所有其他的仅在正常部分是允许的。 出于以下描述的目的,[homes] 和 [printers] 部分将被视为正常部分。 括号中的字母 G 表示参数特定于 [global] 部分。 字母 S 表示可以在特定服务部分中指定参数。 所有 S 参数也可以在 [global] 部分中指定 - 在这种情况下,它们将定义所有服务的默认行为。

参数在此处按字母顺序排列 - 这可能无法创建最佳伙伴,但至少您可以找到它们! 在有同义词的地方,描述了首选的同义词,其他的则指的是首选的同义词。

变量替换

配置文件中可设置的许多字符串都可以进行替换。 例如,如果用户名是john,则选项“path = /tmp/%u”被解释为“path = /tmp/john”。

这些替换主要在下面的描述中注明,但有一些通用替换适用于它们可能相关的情况。 这些是:

  • %U
    会话用户名(客户想要的用户名,不一定与他们得到的用户名相同)。

  • %G
    %U 的主要组名。

  • %h
    运行 Samba 的 Internet 主机名。

  • %m
    客户端机器的 NetBIOS 名称(非常有用)。
    当 Samba 侦听端口 445 时,此参数不可用,因为客户端不再发送此信息。 如果您在具有 Samba 域控制器的域上的 include 语句中使用此宏,请确保在 [global] 部分中设置 smb ports = 139。这将导致 Samba 不侦听端口 445 并允许包含功能运行就像 Samba 2.x 一样。

  • %L
    服务器的 NetBIOS 名称。 这使您可以根据客户对您的称呼来更改配置。 您的服务器可以具有“双重人格”。

  • %M
    客户端计算机的 Internet 名称。

  • %R
    协议协商后选择的协议级别。 它可以是 CORE、COREPLUS、LANMAN1、LANMAN2、NT1、SMB2_02、SMB2_10、SMB3_00、SMB3_02、SMB3_11 或 SMB2_FF 之一。

  • %d
    当前服务器进程的进程 ID。

  • %a
    远程机器的架构。 它目前可识别 Samba (Samba)、Linux CIFS 文件系统 (CIFSFS)、OS/2(OS2)、Mac OS X (OSX)、Windows for Workgroups (WfWg)、Windows 9x/ME (Win95)、Windows NT ( WinNT)、Windows 2000 (Win2K)、Windows XP (WinXP)、Windows XP 64 位 (WinXP64)、Windows 2003 包括 2003R2 (Win2K3) 和 Windows Vista (Vista)。 其他任何事情都将被称为 UNKNOWN。

  • %I
    客户端计算机的 IP 地址。
    在 4.0.0 之前它可以包含 IPv4 映射的 IPv6 地址,现在它只包含 IPv4 或 IPv6 地址。

  • %J
    客户端机器的 IP 地址,冒号/点替换为下划线。

  • %i
    客户端连接的本地 IP 地址。
    在 4.0.0 之前它可以包含 IPv4 映射的 IPv6 地址,现在它只包含 IPv4 或 IPv6 地址。

  • %j
    客户端连接的本地 IP 地址,冒号/点替换为下划线。

  • %T
    当前日期和时间。

  • %t
    当前日期和时间,采用不带冒号的最小格式 (YYYYYmmdd_HHMMSS)。

  • %D
    当前用户的域或工作组的名称。

  • %w
    winbind 分隔符。

  • %$(envvar)
    环境变量 envar 的值。

以下替代仅适用于某些配置选项(仅在建立连接时使用的那些):

  • %S
    当前服务的名称(如果有)。

  • %P
    当前服务的根目录(如果有)。

  • %u
    当前服务的用户名(如果有)。

  • %g
    %u 的主要组名。

  • %H
    %u 给出的用户主目录。

  • %N
    该值与 %L 相同。

使用这些替换和其他 smb.conf 选项可以完成一些非常有创意的事情。

名称修改

Samba 支持名称修改,以便 DOS 和 Windows 客户端可以使用不符合 8.3 格式的文件。 也可以设置调整8.3格式文件名的大小写。

有几个选项可以控制执行重整的方式,它们在此处分组,而不是单独列出。 对于默认值,请查看 testparm 程序的输出。

可以为每个服务单独设置这些选项。

选项包括:

  • case sensitive = yes/no/auto
    控制文件名是否区分大小写。 如果不是,Samba 必须进行文件名搜索并匹配传递的名称。 auto 的默认设置允许支持区分大小写的文件名的客户端(目前 Linux CIFSVFS 和 smbclient 3.0.5 及更高版本)以每个数据包为基础告诉 Samba 服务器他们希望以区分大小写的方式访问文件系统(以支持 UNIX 区分大小写的语义)。 没有 Windows 或 DOS 系统支持区分大小写的文件名,因此将此选项设置为 auto 与将其设置为 no 相同。 默认自动。

  • default case = upper/lower
    控制新文件名的默认大小写(即文件系统中当前不存在的文件)。 默认为小写。 重要提示:作为包含大量文件的目录优化的一部分,以下特殊情况适用。 如果设置了选项 casesensitive = yes、preserve case = No 和 short preserve case = No,则将修改所有传入客户端文件名的大小写,而不仅仅是新文件名。 请参阅下面的附加说明。

  • preserve case = yes/no
    控制是否用客户端传递的大小写创建新文件(即文件系统中当前不存在的文件),或者是否强制它们成为默认大小写。 默认是。

  • short preserve case = yes/no
    控制对符合 8.3 语法(即全部为大写且长度合适)的新文件(即文件系统中当前不存在的文件),是否创建为大写,或者是否强制为默认大小写. 此选项可与 preserve case = yes 一起使用,以允许长文件名保留其大小写,而短文件名则小写。 默认是。

默认情况下,Samba 3.0 具有与 Windows NT 服务器相同的语义,因为它不区分大小写但保留大小写。 作为具有大量文件的目录的特殊情况,如果将大小写选项设置如下,“区分大小写 = 是”、“大小写保留 = 否”、“短保留大小写 = 否”,那么“默认大小写”选项将将应用并在访问此共享时修改从客户端发送的所有文件名。

基于注册表的配置

待完成

身份映射注意事项

待完成

各参数说明

  • available (S)
    此参数允许您“关闭”一项服务。 如果available = no,那么所有连接到服务的尝试都将失败。 此类失败会记入日志。
    默认值:available = yes

  • blocking locks (S)
    此参数控制 smbd(8) 在客户端请求获取打开文件区域的字节范围锁定时的行为,并且该请求具有与之关联的时间限制。

    如果设置了这个参数并且请求的锁范围不能立即得到满足,samba 会在内部对锁请求进行排队,并周期性地尝试获取锁,直到超时期限到期。

    如果此参数设置为 no,则 samba 将像以前版本的 Samba 一样运行,并且如果无法获得锁定范围,将立即使锁定请求失败。

    默认值:blocking locks = yes

  • browsable
    该参数是browseable的同义词。

  • browseable (S)
    这控制是否在网络视图的可用共享列表和浏览列表中看到此共享。
    Default: browseable = yes

  • browse list (G)
    这控制 smbd(8) 是否将浏览列表提供给执行 NetServerEnum 调用的客户端。 通常设置为是。 你永远不需要改变它。
    Default: browse list = yes

  • casesignames
    同case sensitive

  • case sensitive (S)
    请参阅部分名称修改中的讨论。
    Default: case sensitive = auto

  • clustering (G)
    此参数指定 Samba 是否应联系 ctdb 以访问其 tdb 文件并使用 ctdb 作为其消息传递后端的后端。
    仅当您有一个运行 ctdb 的集群设置时,才将此参数设置为 yes。
    Default: clustering = no

  • config backend (G)
    这控制用于存储配置的后端。 可能的值是file(默认)和registry。 当加载 smb.conf 时遇到 config backend = registry 时,到目前为止读取的配置将被删除,而是从注册表中读取全局选项。 因此,这会触发仅注册表配置。 不会立即读取共享定义,而是将registry shares设置为 yes
    注意:不能在注册表配置本身内设置此选项。
    Default: config backend = file
    Example: config backend = registry

  • config file (G)
    这允许您覆盖要使用的配置文件,而不是默认的(通常是 smb.conf)。 这里有一个先有鸡还是先有蛋的问题,因为这个选项是在配置文件中设置的!
    因此,如果在加载参数时配置文件的名称发生了变化,那么它将从新的配置文件中重新加载它们。
    此选项采用通常的替换,这可能非常有用。
    如果配置文件不存在,则不会加载它(允许您对少数客户端的配置文件进行特殊处理)。
    无默认值
    Example: config file = /usr/local/samba/lib/smb.conf.%m

  • copy (S)
    此参数允许您“克隆”服务条目。 指定的服务简单地复制在当前服务的名称下。 当前部分中指定的任何参数都将覆盖正在复制的部分中的参数。
    此功能可让您设置“模板”服务并轻松创建类似服务。 请注意,被复制的服务必须比进行复制的服务更早出现在配置文件中。
    Default: copy =
    Example: copy = otherservice

  • create mode
    同create mask

  • create mask (S)
    创建文件时,根据从 DOS 模式到 UNIX 权限的映射计算必要的权限,然后将生成的 UNIX 模式与此参数进行按位“与”运算。 这个参数可以被认为是文件的 UNIX 模式的按位 MASK。 此处未设置的任何位都将从文件创建时设置的模式中删除。
    此参数的默认值从 UNIX 模式中删除组和其他写入和执行位。
    在此 Samba 之后,将使用此参数创建的 UNIX 模式与默认设置为 000 的 force create mode 参数的值按位“或”。
    此参数不影响目录掩码。 详见参数 directory mask 。
    Default: create mask = 0744
    Example: create mask = 0775

  • deadtime (G)
    参数的值(十进制整数)表示连接被认为是死的并且断开连接之前不活动的分钟数。 deadtime仅在打开文件数为零时才生效。
    这对于阻止大量非活动连接耗尽服务器资源很有用。
    大多数客户端在连接断开时具有自动重新连接功能,因此在大多数情况下,此参数对用户应该是透明的。
    对于大多数系统,建议使用此参数超时几分钟。
    deadtime为零表示不应执行自动断开。
    Default: deadtime = 10080 (7天)
    Example: deadtime = 15

  • default case (S)
    请参阅名称修改部分。 还要注意 short preserve case 参数
    Default: default case = lower

  • default
    同default service

  • default service (G)
    此参数指定在找不到实际请求的服务时将连接到的服务的名称。 请注意,方括号未在参数值中给出(参见下面的示例)。
    此参数没有默认值。 如果未给出此参数,则尝试连接到不存在的服务会导致错误。
    通常,默认服务是访客可以使用的只读服务。
    另请注意,带通配符的服务名称将更改为与请求的服务相同的名称,这非常有用,因为它允许您使用 %S 之类的宏来创建通配符服务。
    另请注意,默认服务中使用的服务名称中的任何“_”字符都将映射到“/”。 这允许有趣的事情。
    Default: default service =
    Example: default service = pub

  • delete readonly (S)
    此参数允许删除只读文件。 这不是正常的 DOS 语义,但 UNIX 允许。
    此选项可能对运行 rcs 等应用程序很有用,其中 UNIX 文件所有权防止更改文件权限,而 DOS 语义防止删除只读文件。
    Default: delete readonly = no

  • delete veto files (S)
    当 Samba 试图删除包含一个或多个被否决目录的目录时使用此选项(请参阅 veto files 选项)。 如果此选项设置为 no(默认值),则如果已否决目录包含任何未否决文件或目录,则目录删除将失败。 这通常是你想要的。
    如果此选项设置为 yes,则 Samba 将尝试以递归方式删除被否决目录中的所有文件和目录。 这对于与诸如 NetAtalk 之类的文件服务系统集成很有用,这些系统在您通常会否决 DOS/Windows 用户看到的目录中创建元文件(例如 .AppleDouble)
    设置 delete veto files = yes 允许在删除父目录时透明地删除这些目录(只要用户有权这样做)。

  • dgram port (G)
    指定服务器应在哪些端口上侦听 NetBIOS 数据报流量。
    Default: dgram port = 138

  • directory mode
    同directory mask

  • directory mask (S)
    此参数是在创建 UNIX 目录时将 DOS 模式转换为 UNIX 模式时使用的八进制模式。
    创建目录时,根据从 DOS 模式到 UNIX 权限的映射计算必要的权限,然后将生成的 UNIX 模式与此参数进行按位“与”运算。 对于目录的 UNIX 模式,可以将此参数视为按位 MASK。 此处未设置的任何位都将在创建时从目录上设置的模式中删除。
    此参数的默认值从 UNIX 模式中删除了“组”和“其他”写入位,只允许拥有该目录的用户对其进行修改。
    在此 Samba 之后,将从该参数创建的 UNIX 模式与 force directory mode 参数的值按位“或”。 此参数默认设置为 000(即不添加额外的模式位)。
    Default: directory mask = 0755
    Example: directory mask = 0775

  • dont descend (S)
    某些系统上的某些目录(例如,Linux 下的 /proc 树)不是客户感兴趣的,就是无限深的(递归的)。 此参数允许您指定以逗号分隔的目录列表,服务器应始终显示为空。
    请注意,Samba 可能对“dont descend”条目的确切格式非常挑剔。 例如,您可能需要 ./proc 而不仅仅是 /proc。 实验是最好的政策:-)
    Default: dont descend =
    Example: dont descend = /proc,/dev

  • follow symlinks (S)
    此参数允许 Samba 管理员阻止 smbd(8) 跟踪特定共享中的符号链接。 将此参数设置为 no 可防止任何作为符号链接的文件或目录被跟踪(用户将收到错误消息)。 例如,此选项对于阻止用户在其主目录中添加指向 /etc/passwd 的符号链接非常有用。 但是,它会稍微减慢文件名查找速度。
    默认情况下启用此选项(即 smbd 将跟踪符号链接)。
    Default: follow symlinks = yes

  • force create mode (S)
    此参数指定一组 UNIX 模式位权限,这些权限将始终在 Samba 创建的文件上设置。 这是通过将这些位按位“或”到正在创建的文件的模式位上来完成的。 此参数的默认值为(八进制)000。在应用创建掩码参数中设置的掩码后,此参数中的模式按位“或”到文件模式。
    下面的示例将强制所有新创建的文件具有为“组”和“其他”设置的读取和执行权限以及为“用户”设置的读/写/执行位。
    Default: force create mode = 0000
    Example: force create mode = 0755

  • force directory mode (S)
    此参数指定一组 UNIX 模式位权限,这些权限将始终在 Samba 创建的目录上设置。 这是通过将这些位按位“或”到正在创建的目录的模式位上来完成的。 此参数的默认值为(八进制)0000,它不会向创建的目录添加任何额外的权限位。 此操作在应用参数目录掩码中的模式掩码后完成。
    下面的示例将强制所有创建的目录具有为“组”和“其他”设置的读取和执行权限,以及为“用户”设置的读/写/执行位。
    Default: force directory mode = 0000
    Example: force directory mode = 0755

  • group
    同force group (S)

  • force group (S)
    这指定了一个 UNIX 组名称,该名称将被指定为连接到此服务的所有用户的默认主组。 通过确保对服务上文件的所有访问都将使用命名组进行权限检查,这对于共享文件很有用。 因此,通过将此组的权限分配给此服务中的文件和目录,Samba 管理员可以限制或允许共享这些文件。
    在 Samba 2.0.5 及更高版本中,此参数通过以下方式扩展了功能。 如果此处列出的组名前面带有“+”字符,则访问共享的当前用户只有在已被分配为该组成员的情况下才会将主要组默认分配给该组。 这允许管理员决定只有已经在特定组中的用户才能创建将组所有权设置为该组的文件。 这提供了更细粒度的所有权分配。 例如,设置 force group = +sys 意味着只有已经在组 sys 中的用户在访问此 Samba 共享时才会将其默认主组分配给 sys。 所有其他用户将保留其普通的主要组。
    如果还设置了 force user 参数,则在 force group 中指定的组将覆盖在 force user 中设置的主要组。
    Default: force group =
    Example: force group = agroup

  • force printername (S)
    从 Windows NT(或更高版本)打印时,smb.conf 中的每台打印机都有两个关联的名称,可供客户端使用。 第一个是在 smb.conf 中定义的共享名(或简称)。 这是唯一可供 Windows 9x 客户端使用的打印机名称。 浏览到 Samba 服务器上的“打印机”(或“打印机和传真”)文件夹时,可以看到与打印机关联的第二个名称。 这被简称为打印机名称(不要与打印机名称选项混淆)。
    当为远程 Windows 兼容打印服务器(如 Samba)上的打印机分配新驱动程序时,Windows 客户端将重命名打印机以匹配刚刚上传的驱动程序名称。 当多台打印机绑定到同一个驱动程序时,这可能会导致用户混淆。 要防止 Samba 允许打印机的打印机名称与 smb.conf 中定义的共享名称不同,请设置 force printername = yes。
    请注意,启用此参数可能会影响将打印机从 Windows 服务器迁移到 Samba,因为 Windows 无法强制共享名称和打印机名称匹配。
    建议在客户端使用打印机后不要更改此参数的值,因为这可能会导致用户无法从其本地打印机文件夹中删除打印机连接。
    Default: force printername = no

  • force user (S)
    这指定了一个 UNIX 用户名,该用户名将被指定为连接到该服务的所有用户的默认用户。 这对于共享文件很有用。 您还应该小心使用它,因为使用不当会导致安全问题。
    仅在建立连接后才使用此用户名。 因此,客户端仍然需要以有效用户身份连接并提供有效密码。 一旦连接,所有文件操作都将作为“强制用户”执行,无论客户端连接的用户名是什么。 这可能非常有用。
    在 Samba 2.0.5 及更高版本中,此参数还会导致强制用户的主要组用作所有文件活动的主要组。 在 2.0.5 之前,主要组保留为连接用户的主要组(这是一个错误)。

  • guest account (G)
    这是一个用户名,用于访问指定为 guest ok 的服务(见下文)。 任何连接到访客服务的客户端都可以使用该用户拥有的任何权限。 此用户必须存在于密码文件中,但不需要有效登录。 用户帐户“ftp”通常是此参数的不错选择。
    在某些系统上,默认访客帐户“nobody”可能无法打印。 在这种情况下使用另一个帐户。 您应该通过尝试以访客用户身份登录(可能使用 su - 命令)并尝试使用系统打印命令(例如 lpr(1) 或 lp(1))进行打印来测试这一点。
    此参数不接受 % 宏,因为系统的许多部分要求此值保持不变才能正确运行。

  • public
    同guest ok

  • guest ok (S)
    如果该参数对服务来说是 yes,那么连接到服务不需要密码。 特权将是来宾帐户的特权。
    此参数抵消了设置 restrict anonymous = 2 的好处
    有关此选项的更多信息,请参阅下面的安全部分。
    Default: guest ok = no

  • only guest
    同guest only

  • guest only (S)
    如果服务的此参数为“是”,则仅允许访客连接到该服务。 如果服务没有设置guest ok,该参数将不起作用。
    有关此选项的更多信息,请参阅下面的security参数。
    Default: guest only = no

  • hide dot files (S)
    这是一个布尔参数,用于控制以点开头的文件是否显示为隐藏文件。
    Default: hide dot files = yes

  • hide files (S)
    这是不可见但可访问的文件或目录的列表。 DOS ‘hidden’ 属性适用于任何匹配的文件或目录。
    列表中的每个条目都必须用“/”分隔,这允许在条目中包含空格。 ‘*’ 和 ‘?’ 可用于指定多个文件或目录,如 DOS 通配符。
    每个条目必须是 Unix 路径,而不是 DOS 路径,并且不得包含 Unix 目录分隔符“/”。
    请注意,区分大小写选项适用于隐藏文件。
    设置此参数将影响 Samba 的性能,因为它将在扫描时强制检查所有文件和目录是否匹配。
    上面显示的示例基于 Thursby 提供的 Macintosh SMB 客户端 (DAVE) 创建供内部使用的文件,并且仍然隐藏所有以点开头的文件。
    我们这个参数的一个例子是:

hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/

Default: hide files = # no file are hidden

  • allow hosts
    同hosts allow

  • hosts allow (S)
    此参数是以逗号、空格或制表符分隔的一组主机,允许访问服务。
    如果在 [global] 部分中指定,则它将适用于所有服务,无论单个服务是否具有不同的设置。
    您可以按名称或 IP 号指定主机。 例如,您可以使用诸如allow hosts = 150.203.5. 之类的内容来限制对C 类子网上的主机的访问。该列表的完整语法在手册页hosts_access(5) 中进行了描述。 请注意,您的系统上可能不存在此手册页,因此此处也将给出简要说明。
    请注意,除非主机拒绝选项明确拒绝,否则将始终允许本地主机地址 127.0.0.1访问。
    如果您的系统支持网络组,您还可以通过网络/网络掩码对和网络组名称指定主机。 EXCEPT 关键字也可用于限制通配符列表。 以下示例可能会提供一些帮助:
    Example 1: allow all IPs in 150.203..; except one

    hosts allow = 150.203. EXCEPT 150.203.6.66
    

    Example 2: allow hosts that match the given network/netmask

    hosts allow = 150.203.15.0/255.255.255.0
    

    Example 3: allow a couple of hosts

    hosts allow = lapland, arvidsjaur
    

    Note: 请注意,访问仍然需要合适的用户级密码。
    请参阅 testparm(1) 以了解测试您的主机访问权限的方法,看看它是否符合您的预期。
    Default: hosts allow = # none (i.e., all hosts permitted access)
    Example: hosts allow = 150.203.5. myhost.mynet.edu.au

  • deny hosts
    同hosts deny

  • hosts deny (S)
    与主机允许相反 - 不允许此处列出的主机访问服务,除非特定服务有自己的列表来覆盖此列表。 如果列表发生冲突,则允许列表优先。
    如果需要默认拒绝所有,请使用关键字 ALL(或网络掩码 0.0.0.0/0),然后用 hosts allow = hosts allow 参数明确指定那些应该被允许访问的主机。

  • include (S)
    这允许您将一个配置文件包含在另一个配置文件中。 该文件是按字面包含的,就好像在适当的位置键入一样。
    它采用标准替换,%u、%P 和 %S 除外。
    参数include = registry有一个特殊的含义:它不包含当前工作目录中名为registry的文件,而是从registry中读取全局配置选项。 有关详细信息,请参阅基于注册表的配置部分。 请注意,此选项会自动激活注册表共享。

  • inherit acls (S)
    此参数可用于确保如果父目录上存在默认 acl,则在这些父目录中创建新文件或子目录时始终尊重它们。 默认行为是使用创建目录时指定的 unix 模式。 启用此选项会将 unix 模式设置为 0777,从而保证传播默认目录 acl。 请注意,使用将本机 Windows 存储为元数据的 VFS 模块 acl_xattr 或 acl_tdb 将自动为加载它们的任何共享打开此选项,因为它们需要此选项才能正确模拟 Windows ACL。

  • inherit owner (S)
    新文件和目录的所有权通常由连接用户的有效 uid 管理。 此选项允许 Samba 管理员指定新文件和目录的所有权应由父目录的所有权控制。
    有效的选项是:

    • no - 文件的 Windows (SID) 所有者和 UNIX (uid) 所有者均受创建文件的用户的身份控制。
    • windows and unix - 新文件和目录的 Windows (SID) 所有者和 UNIX (uid) 所有者设置为父目录的相应所有者。
    • yes - 同windows and unix。
    • only unix - 只有 UNIX 所有者设置为父目录的 UNIX 所有者。
      这种行为有用的常见场景是实现下拉框,用户可以创建和编辑文件但不能删除它们,并确保用户漫游配置文件目录中新创建的文件实际上归用户所有。

    unix only 选项有效地打破了文件的 Windows 所有者和 UNIX 所有者之间的联系。 作为逻辑结果,在这种模式下,设置文件的 Windows 所有者不会修改 UNIX 所有者。 使用此模式通常应与可以模拟完整 NT ACL 模型而不影响 POSIX 权限的后备存储结合使用,例如 acl_xattr VFS 模块,再加上 acl_xattr:ignore system acls = yes。 当文件仅通过 SMB(无 UNIX 扩展)公开时,这可用于模拟文件夹配额。 目录的 UNIX 所有者由所有子目录和文件在本地设置和继承,它们都使用相同的配额。
    Default: inherit owner = no

  • inherit permissions (S)
    新文件和目录的权限通常由create mask、directory mask、force create mode和force directory mode控制,但布尔inherit permissions参数会覆盖这一点。
    新目录继承父目录的模式,包括setgid等位。
    新文件从父目录继承其读/写位。 它们的执行位继续由map archive、map hidden和map system 决定。
    请注意,setuid 位永远不会通过继承设置(代码明确禁止这样做)。
    这在具有许多用户(可能有几千个)的大型系统上特别有用,以允许每个用户灵活使用单个 [homes] 共享。

  • interfaces (G)
    此选项允许您覆盖 Samba 将用于浏览、名称注册和其他 NetBIOS over TCP/IP (NBT) 流量的默认网络接口列表。 默认情况下,Samba 将向内核查询所有活动接口的列表,并使用除 127.0.0.1 之外的任何可广播的接口。
    该选项采用接口字符串列表。 每个字符串可以是以下任何一种形式:

    • 网络接口名称(例如 eth0)。 这可能包括类似 shell 的通配符,因此 eth* 将匹配以子字符串“eth”开头的任何接口
    • 一个 IP 地址。 在这种情况下,网络掩码是从从内核获得的接口列表中确定的
    • IP/掩码对。
    • 广播/掩码对。

    “掩码”参数可以是位长(例如对于 C 类网络为 24)或点分十进制形式的完整网络掩码。
    上面的“IP”参数可以是完整的点分十进制 IP 地址,也可以是通过操作系统的正常主机名解析机制查找的主机名。
    默认情况下,Samba 启用除环回适配器(IP 地址 127.0.0.1)之外的所有可广播的活动接口。
    为了支持 SMB3 多通道配置,smbd 理解一些额外的参数,这些参数可以附加在具有这种扩展语法的实际接口之后(请注意,引用对于处理 ; 和 , 字符很重要):
    “interface[;key1=value1[,key2=value2[…]]]”
    已知的key是speed、capability和 if_index。 速度以每秒位数指定。 已知的capability是 RSS 和 RDMA。 if_index 应该小心使用:这些值不能与内核使用的索引一致。 请注意,这些选项主要用于测试和开发,而不是用于生产。 至少在 Linux 系统上,应该自动检测这些值,但是当自动检测不起作用或不可用时,这些设置可以作为最后的手段。 指定的值会覆盖自动检测到的值。
    下面的前两个例子配置了三个网络接口,分别对应eth0设备和IP地址192.168.2.10和192.168.3.10。 后两个接口的网络掩码将设置为 255.255.255.0。
    其他示例显示了如何指定每个接口的额外参数。 注意“,”和“;”的可能用法,这使得双引号成为必要。
    Default: interfaces =
    Example: interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0
    Example: interfaces = eth0, 192.168.2.10/24; 192.168.3.10/255.255.255.0
    Example: interfaces = “eth0;if_index=65,speed=1000000000,capability=RSS”
    Example: interfaces = “lo;speed=1000000000” “eth0;capability=RSS”
    Example: interfaces = “lo;speed=1000000000” , “eth0;capability=RSS”
    Example: interfaces = “eth0;capability=RSS” , “rdma1;capability=RDMA” ; “rdma2;capability=RSS,capability=RDMA”

  • invalid users (S)
    这是不应允许登录此服务的用户列表。 这确实是一个偏执的检查,以绝对确保不正确的设置不会破坏您的安全。
    以“@”开头的名称被解释为 UNIX 组。
    当前的服务名称被替换为 %S。 这在 [homes] 部分很有用。
    Default: invalid users = # no invalid users
    Example: invalid users = root fred admin @wheel

  • keepalive (G)
    参数的值(整数)表示keepalive数据包之间的秒数。 如果此参数为零,则不会发送保活数据包。 如果发送了 Keepalive 数据包,则允许服务器判断客户端是否仍然存在并做出响应。
    如果套接字默认设置了 SO_KEEPALIVE 属性,则通常不需要 Keepalive。 (请参阅套接字选项)。 基本上,如果您遇到困难,您应该只使用此选项。
    请注意,此选项仅适用于 SMB1 客户端连接,对 SMB2 客户端没有影响。

  • load printers (G)
    一个布尔变量,用于控制是否默认加载 printcap 中的所有打印机以供浏览。 有关详细信息,请参阅打印机部分。
    Default: load printers = yes

  • lock dir
    同 lock directory

  • lock directory (G)

  • log file (G)
    此选项允许您覆盖 Samba 日志文件(也称为调试文件)的名称。
    此选项采用标准替换,允许您为每个用户或机器拥有单独的日志文件。
    No default
    Example: log file = /usr/local/samba/var/log.%m

  • logging (G)
    此参数配置日志记录后端。 可以同时指定多个后端,每个后端具有不同的日志级别。 该参数是一个后端列表,其中每个后端指定为后端[:option][@loglevel]。
    ‘option’ 参数可用于传递特定于后端的选项。
    后端的日志级别是可选的,如果没有为后端设置,则所有消息都发送到该后端。 参数日志级别确定整体日志级别,而此处指定的日志级别定义发送到各个后端的内容。
    设置日志记录时,它会覆盖 syslog 和 syslog only 参数。
    某些后端仅在使用附加库编译 Samba 时可用。 日志记录后端的总体列表:

    • syslog
    • file
    • systemd
    • lttng
    • gpfs
    • ringbuf

    ringbuf 后端支持可选的 size 参数来更改使用的缓冲区大小,默认为 1 MB:ringbuf:size=NBYTES
    Default: logging =
    Example: logging = syslog@1 file

  • mangled names (S)

  • mangle prefix (G)

  • mangling char (S)

  • map to guest (G)
    此参数可以采用四个不同的值,它们告诉 smbd(8) 如何处理以某种方式与有效 UNIX 用户不匹配的用户登录请求。
    四个设置是:

    • Never - 表示使用无效密码的用户登录请求被拒绝。 这是默认设置。
    • Bad User - 意味着使用无效密码的用户登录被拒绝,除非用户名不存在,在这种情况下,它被视为访客登录并映射到访客帐户。
    • Bad Password - 意味着使用无效密码的用户登录被视为访客登录并映射到访客帐户。 请注意,这可能会导致问题,因为这意味着任何错误地输入密码的用户都将以“访客”身份登录 - 并且不会知道他们无法访问他们认为应该访问的文件的原因 - 不会向他们发送任何消息通知他们的密码错误。 如果您以这种方式将map to guest参数,帮助台服务会讨厌您:-)。

    请注意,设置“访客”共享服务需要此参数。 这是因为在这些模式下,被请求的资源名称直到服务器成功验证客户端后才会发送到服务器,因此服务器无法在正确的时间(连接到共享)为“访客”共享做出身份验证决定.
    Default: map to guest = Never
    Example: map to guest = Bad User

  • max connections (S)

  • max disk size (G)

  • max log size (G)

  • max open files (G)

  • max print jobs (S)

  • max reported print jobs (S)

  • null passwords (G)
    允许或禁止客户端访问具有空密码的帐户。
    另请参见 smbpasswd(5)。
    Default: null passwords = no

  • passdb backend (G)

  • directory
    同path

  • path (S)
    此参数指定服务用户将被授予访问权限的目录。 在可打印服务的情况下,这是打印数据在提交给主机进行打印之前假脱机的地方。
    对于提供访客访问的可打印服务,该服务应该是只读的,并且路径应该是全局可写的并且设置了粘性位。 当然,这不是强制性的,但如果不这样做,您可能无法获得预期的结果。
    路径中出现的任何 %u 都将替换为客户端在此连接上使用的 UNIX 用户名。 任何出现的 %m 都将被它们连接的机器的 NetBIOS 名称替换。 这些替换对于为用户设置伪主目录非常有用。
    请注意,如果指定了 root dir,则此路径将基于 root dir。
    Default: path =
    Example: path = /home/fred

  • preserve case (S)
    这控制是否使用客户端通过的大小写创建新文件名,或者是否强制它们成为默认大小写。
    有关更全面的讨论,请参阅关于 NAME MANGLING 的部分。

  • print ok
    同 printable

  • printable (S)
    如果此参数为 yes,则客户端可以在为服务指定的目录上打开、写入和提交假脱机文件。
    请注意,可打印服务将始终允许通过打印数据的假脱机写入服务路径(允许用户权限)。 read only参数仅控制对资源的非打印访问。
    Default: printable = no

  • printcap cache time (G)

  • printcap
    同printcap name

  • printcap name (G)
    此参数可用于覆盖服务器使用的编译默认 printcap 名称(通常是 /etc/printcap)。 请参阅上面 [printers] 部分的讨论,了解您可能想要这样做的原因。
    要使用 CUPS 打印界面,请设置 printcap name = cups 。 这应该由 [global] 部分中的附加设置 print = cups 来补充。 printcap name = cups 将使用 CUPS 创建的“虚拟” printcap,如您的 CUPS 配置文件中指定的那样。
    在使用 lpstat 列出可用打印机的 System V 系统上,您可以使用 printcap name = lpstat 自动获取可用打印机的列表。 这是在 Samba 中配置时定义 SYSV 的系统的默认设置(包括大多数基于 System V 的系统)。 如果在这些系统上将 printcap 名称设置为 lpstat,那么 Samba 将启动 lpstat -v 并尝试解析输出以获取打印机列表。
    一个最小的 printcap 文件看起来像这样:

    print1|My Printer 1
    print2|My Printer 2
    print3|My Printer 3
    print4|My Printer 4
    print5|My Printer 5
    

    ‘|’ 分隔打印机的别名。 第二个别名中有一个空格这一事实向 Samba 暗示它是一个注释。
    注意:在 AIX 下,默认的 printcap 名称是 /etc/qconfig。 如果字符串 qconfig 出现在 printcap 文件名中,Samba 将假定该文件是 AIX qconfig 格式。
    Default: printcap name = /etc/printcap
    Example: printcap name = /etc/myprintcap

  • printer
    同printer name

  • printer name (S)
    此参数指定打印机的名称,通过可打印服务假脱机的打印作业将发送到该打印机。
    如果在 [global] 部分中指定,则给定的打印机名称将用于任何未指定其自己的打印机名称的可打印服务。
    在许多系统上,打印机名称的默认值可能是 lp。
    Default: printer name =
    Example: printer name = laserwriter

  • printjob username (S)

  • private directory
    同private dir

  • private dir (G)
    该参数定义了 smbd 将用于存储 smbpasswd 和 secrets.tdb 等文件的目录。
    Default: private dir = ${prefix}/private

  • read list (S)
    这是被授予对服务的只读访问权限的用户列表。 如果连接用户在此列表中,那么无论只读选项设置为什么,他们都不会被授予写访问权限。 该列表可以使用无效用户参数中描述的语法包含组名。
    Default: read list =
    Example: read list = mary, @students

  • read only (S)
    writeable的反义词。
    如果此参数为 yes,则服务的用户不能在服务目录中创建或修改文件。
    请注意,可打印服务 (printable = yes) 将始终允许写入目录(允许用户权限),但只能通过假脱机操作。
    Default: read only = yes

  • root
    同 root directory

  • root dir
    同 root directory

  • root directory (G)
    服务器将在启动时 chroot()(即更改其根目录)到此目录。 这对于安全操作并不是绝对必要的。 即使没有它,服务器也会拒绝访问不在服务条目之一中的文件。 它还可能检查并拒绝访问到文件系统其他部分的软链接,或者尝试在文件名中使用“…”来访问其他目录(取决于宽 smbconfoptions 参数的设置)。
    添加除“/”之外的根目录条目会增加额外的安全级别,但要付出代价。 它绝对确保不访问不在根目录选项中指定的子树中的文件,包括服务器完整操作所需的一些文件。 为了保持服务器的完全可操作性,您需要将一些系统文件镜像到根目录树中。 特别是,您需要镜像 /etc/passwd(或其子集),以及打印所需的任何二进制文件或配置文件(如果需要)。 必须镜像的文件集取决于操作系统。
    Default: root directory =
    Example: root directory = /homes/smb

  • short preserve case (S)
    此布尔参数控制是否创建符合 8.3 语法的新文件,即全部为大写并具有合适的长度,是否创建为大写,或者它们是否被强制为默认大小写。 此选项可以与 preserve case = yes 一起使用,以允许长文件名保留其大小写,而缩短短文件名。
    请参阅名称修改部分。

  • syslog only (G)
    如果设置了此参数,则 Samba 调试消息仅记录到系统 syslog 中,而不记录到调试日志文件中。 即使仅启用了syslog only,仍然会有一些日志记录到log.[sn]mbd。
    应该改用 logging 参数。 设置日志记录后,它会覆盖 syslog only 参数。

  • syslog (G)
    此参数映射 Samba 调试消息如何记录到系统 syslog 日志记录级别。 Samba 调试级别 0 映射到 syslog LOG_ERR,调试级别 1 映射到 LOG_WARNING,调试级别 2 映射到 LOG_NOTICE,调试级别 3 映射到 LOG_INFO。 所有更高级别都映射到 LOG_DEBUG。
    此参数设置将消息发送到 syslog 的阈值。 只有调试级别低于此值的消息才会发送到 syslog。 即使仅启用了系统日志,仍然会有一些日志记录到log.[sn]mbd。
    应该改用 logging 参数。 设置日志记录时,它会覆盖 syslog 参数。
    Default: syslog = 1

  • unicode (G)
    指定服务器和客户端是否应支持 unicode。
    如果此选项设置为 false,将强制使用 ASCII。
    Default: unicode = yes

  • unix charset (G)
    指定运行 Samba 的 unix 机器使用的字符集。 Samba 需要知道这一点,以便能够将文本转换为其他 SMB 客户端使用的字符集。
    这也是 Samba 在为其调用的脚本指定参数时将使用的字符集。
    Default: unix charset = UTF-8
    Example: unix charset = ASCII

  • usershare prefix allow list (G)

  • usershare prefix deny list (G)

  • usershare template share (G)
    用户定义的共享只有有限的可能参数,例如path、guest ok等。此参数允许用户共享从现有共享“克隆”。 如果“usershare template share”设置为现有共享的名称,则创建的所有用户共享都根据此共享上设置的参数设置默认值。
    通过在模板共享定义上设置参数“-valid = False”,可以将目标共享设置为对实际文件共享无效。 这导致它不会被视为真正的导出共享,而是能够用作用户共享的模板。
    Default: usershare template share =
    Example: usershare template share = template_share

  • valid users (S)
    这是应允许登录此服务的用户列表。 以“@”开头的名称使用与invalid users参数中描述的相同规则进行解释。
    如果这是空的(默认),那么任何用户都可以登录。 如果用户名同时在此列表和invalid users列表中,则拒绝该用户访问。
    当前的服务名称被替换为 %S。 这在 [homes] 部分很有用。
    注意:在 [global] 部分中使用时,此参数可能会产生不希望的副作用。 例如:如果 samba 被配置为 MASTER BROWSER(请参阅 local master、os level、domain master、preferred master),此选项将阻止工作站浏览网络。
    Default: valid users = # No valid users list (anyone can login)
    Example: valid users = greg, @pcusers

  • -valid (S)
    该参数表示共享是否有效,是否可以使用。 当此参数设置为 false 时,共享将不可见或不可访问。
    普通用户不应使用此选项,但可能对开发人员有所帮助。 Samba 在内部使用此选项将共享标记为已删除。
    Default: -valid = yes

  • veto files (S)
    这是既不可见也不可访问的文件和目录的列表。 列表中的每个条目都必须用“/”分隔,这允许在条目中包含空格。 ‘*’ 和 ‘?’ 可用于指定多个文件或目录,如 DOS 通配符。
    每个条目必须是 unix 路径,而不是 DOS 路径,并且不得包含 unix 目录分隔符“/”。
    请注意,区分大小写选项适用于否决文件。
    需要注意的 veto files 参数的一个重要特性是 Samba 在尝试删除目录时的行为。 如果要删除的目录仅包含 veto 文件,则此删除将失败,除非您还将 delete veto files 参数设置为 yes。
    设置此参数将影响 Samba 的性能,因为它将在扫描时强制检查所有文件和目录是否匹配。
    使用示例包括:

    ; Veto any files containing the word Security,
    ; any ending in .tmp, and any directory containing the
    ; word root.
    veto files = /*Security*/*.tmp/*root*/
    
    ; Veto the Apple specific files that a NetAtalk server
    ; creates.
    veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
    

    Default: veto files = # No files or directories are vetoed

  • writable
    同 writeable

  • write ok
    同 writeable

  • writeable (S)
    read only的反义词
    Default: writeable = no

  • write list (S)
    这是被授予对服务的读写访问权限的用户列表。 如果连接用户在此列表中,那么无论只读选项设置为什么,他们都将获得写访问权限。 该列表可以包含使用@group 语法的组名。
    请注意,如果用户同时在读取列表和写入列表中,那么他们将被授予写入访问权限。
    Default: write list =
    Example: write list = admin, root, @staff

警告

尽管配置文件允许服务名称包含空格,但您的客户端软件可能不允许。 无论如何,在比较中空格都会被忽略,所以这应该不是问题——但要注意这种可能性。

同样,许多客户端——尤其是 DOS 客户端——将服务名称限制为八个字符。 smbd(8) 没有这样的限制,但是如果它们截断服务名称,从这些客户端连接的尝试将会失败。 出于这个原因,您可能应该将服务名称的长度控制在八个字符以内。

使用 [homes] 和 [printers] 特殊部分使管理员的工作变得轻松,但默认属性的各种组合可能会很棘手。 在设计这些部分时要格外小心。 特别要确保假脱机目录的权限正确。

版本

此手册页是 Samba 套件 4.15.0 版的一部分。

参见

samba(7), smbpasswd(8), smbd(8), nmbd(8), winbindd(8), samba(8), samba-tool(8), smbclient(1), nmblookup(1), testparm(1).

作者

最初的 Samba 软件和相关实用程序由 Andrew Tridgell 创建。 Samba 现在由 Samba 团队开发为类似于 Linux 内核开发方式的开源项目。

你可能感兴趣的:(服务器,linux,samba)