为什么 testparm 的输出与 /etc/samba/smb.conf 不同?

为什么 testparm 的输出与 /etc/samba/smb.conf 不同?

[global]这是随机 Synology NAS 的 /etc/samba/smb.conf 部分的输出:

~# cat /etc/samba/smb.conf
[global]
        printcap name=cups
        winbind enum groups=yes
        include=/var/tmp/nginx/smb.netbios.aliases.conf
        min protocol=NT1
        security=user
        local master=no
        realm=*
        passdb backend=smbpasswd
        printing=cups
        max protocol=SMB3
        winbind enum users=yes
        load printers=yes
        workgroup=WORKGROUP

这是 的输出testparm,尽管它说它加载了此配置文件,但它并不相同:

# testparm -s
Load smb config files from /etc/samba/smb.conf
...
    [global]
            passdb backend = smbpasswd
            printcap name = cups
            realm = *
            security = USER
            server min protocol = NT1
            syno catia = Yes
            winbind enum groups = Yes
            winbind enum users = Yes
            winbind expand groups = 1
            notify:synotify = yes
            rpc_server:msftewds = embedded
            rpc_daemon:wspd = disabled
            fruit:locking = none
            rpc_server:mdssvc = embedded
            rpc_daemon:mdssd = disabled
            idmap config * : backend = syno
            include = /var/tmp/nginx/smb.netbios.aliases.conf
            smb encrypt = if_required
            strict sync = No

我知道testparm有这个选项:

  -v, --verbose                   Show default options too

例如,这解释了它不返回max protocol=SMB3,因为它已经是默认值:

# testparm -s -v 2>&1 | grep "max protocol"
        client ipc max protocol = default
        client max protocol = default
        server max protocol = SMB3

但为什么会返回以或 行开头的testparm值。它没有在 smb.conf 中设置。我也无法在 中的任何其他文件中找到它:rpc_fruit:locking = none/etc

# grep -rIils fruit /etc
#

我的意思是,是的,GUI 中有一个设置似乎启用了 vfs 模块“fruit”,但为什么在任何 Samba 配置文件中都没有提到它?

Synology 高级 Samba 设置

答案1

默认值不是某个绝对值,而是相对值。含义:编译到 samba 二进制文件中的内容。供应商可以在编译时为某些选项定义自己的默认值。

答案2

这很可能是因为 Synology 采用了 Samba 源代码并根据自己的需要进行了调整,synology 上有很多标准 Samba 中不存在的 smb.conf 参数,例如 syno catia = Yes

相关内容