Linux Samba 4.7 服务器 -> Windows 7/10 客户端创建文件 -> 设置执行 -> “store dos 属性 = no”无效

Linux Samba 4.7 服务器 -> Windows 7/10 客户端创建文件 -> 设置执行 -> “store dos 属性 = no”无效

0 运行 Samba 4.7 服务器和 openLDAP 进行身份验证。多个 Windows 7/10 客户端连接并创建文件和文件夹。

我有以下问题:

1.) 如果 LDAP 用户john在使用 SSH 连接到 sambaServer 时接触文件,则文件权限正确(执行位是没有设置对于文件):

john@sambaServer:/data/projects/general/john> touch testExecutePermission.dat
john@sambaServer:/data/projects/general/john> ll
total 0
-rw-rw-r--+ 1 john gast 0 Nov 30 18:44 testExecutePermission.dat
john@v:/data/projects/general/john>

2.) 假设用户 john 使用他的 Windows 资源管理器创建一个文件: 在此处输入图片描述

新文件是可执行文件对于所有者、群组和其他人:

john@sambaServer:/data/projects/general/john> ll
-rw-rw-r--+ 1 john gast 0 Nov 30 18:44 testExecutePermission.dat
-rwxrwxr-x+ 1 john gast 0 Nov 30 18:47 New Text Document.txt    

来自 Samba 文档据我了解,samba 使用所有者、组和其他人的执行位来存储三个 DOS 属性(SYSTEM、HIDDEN、ARCHIVE)。

为了控制是否使用执行位,store dos attributes可以使用该参数。如果我正确理解了此参数的用法,store dos attributes = yes则其含义如下:

“尝试将 DOS 属性存储在 UNIX 文件系统的扩展属性中,而不是文件的执行位。”

  1. 因此我设置store dos attributes = yes并尝试了前后对比:

    /etc/samba/smb.conf
    [global]
    create mask = 0660
    directory mask = 770
    ...
    store dos attributes = yes
    ...

命令行中的结果得到脂肪命令:

`sambaServer:/data/  getfattr windowsFileStoreDosAttributes_no.txt`   
`user.SAMBA_PAI`

`sambaServer:/data/  getfattr windowsFileStoreDosAttributes_yes.txt`  
`user.DOSATTRIB`
`user.SAMBA_PAI`

3.1 好消息是,扩展 UNIX 文件系统属性user.DOSATTRIB已设置。但文件仍可执行。

3.2 显然,如果设置了,参数map archive / readonly /h idden / system就不会被使用。但我也尝试了所有设置它们的组合。store dos attributes

有人知道为什么执行位仍然设置吗?

相关内容