getcifsacl 不适用于 CIFS 挂载版本 2 或 3

getcifsacl 不适用于 CIFS 挂载版本 2 或 3

当我安装 CIFS 共享时,vers=1.0我可以getcifsacl成功执行。

# mount -t cifs //example.com/Users/milo /mnt/cifs -o vers=1.0
# getcifsacl /mnt/cifs/file.png

REVISION:0x1
CONTROL:0x8504
OWNER:S-1-5-21-1111111111-222222222-33333333-11824
GROUP:S-1-5-21-1111111111-222222222-33333333-513
ACL:S-1-5-21-1111111111-222222222-33333333-11824:ALLOWED/I/FULL
ACL:S-1-5-21-1111111111-222222222-33333333-3200:ALLOWED/I/FULL
ACL:NT Authority\SYSTEM:ALLOWED/I/FULL

但是当我使用vers=2.0、或2.1或安装时3.0,ACL 读取失败。

getxattr error: 95
REVISION:0x0
CONTROL:0x0

操作系统是 Debian Stretch (9.6),cifs-utils 包 2:6.7-1。CIFS 共享来自 Nettapp 数据存储。从 Windows XP、8、10 安装运行正常。

为什么getcifsacl取决于 SMB 协议版本?我可以通过较新的 SMB 协议读取 ACL 吗?

答案1

为了使其工作,需要更新的内核和更新的 cifs-utils。

使用 mount 版本 2.0、2.1 或 3.0读取 ACLgetcifsacl并进行设置,可与内核(Debian Strech 的反向移植)和 cifs-utils 版本(git 标签)配合使用。所有实用程序也适用于内核 4.20.4。setcifsacl4.19.0-0.bpo.1-amd64cifs-utils-6.8

我在 samba-technical 邮件列表中收到了解决方案提示:https://lists.samba.org/archive/samba-technical/2019-January/132176.html

相关内容