我正在开发一个脚本,它将REST API用于Oracle ZFS存储设备(“ZS3”)。该脚本使用API创建生产环境的快照和克隆,以用作临时测试环境。到目前为止,一切都很棒...除了我找不到为SMB协议指定“共享级别ACL”设置。
手动(通过web ui)克隆会导致默认ACL为“everyone,full access”。原始共享的ACL(快照/克隆的源)具有特定用户列表,其中包含特定的ACL。我假设此信息不在ZFS快照中,而是在ZFS之外维护,因此它不存在于克隆中(问:这是正确的吗?)。
我已经多次重读Oracle文档“E56084.pdf”(“Oracle ZFS存储设备RESTful API指南,版本2013.1.4.0”)。对“sharesmb”属性有模糊的引用,而没有与SMB或ACL相关的任何其他内容。我的脚本正确地将“sharesmb”值(用于启用SMB共享)设置为传递给用于创建文件系统克隆的API的JSON有效内容中的“sharesmb = SHARENAME,abe = off,dfsroot = false”。但是,我看不到我可以为实际ACL列表设置的属性。对于NFS,这很容易,它是在“sharenfs”属性中传递的值。
源项目和共享的“GET”结果不包含对“UI共享级别ACL”中列出的用户的任何引用,如Web UI中所示。
那么,如何通过REST api复制或明确设置共享上的“SMB共享级别ACL”?
谢谢!
答案 0 :(得分:0)
系统有两种不同的ACL,两者都存储在数据集中:
/usr/bin/ls -V /pool/filesystem/yourFile
或/usr/bin/ls -Vd /pool/filesystem/yourDir
查看它们。)/usr/bin/ls -V /pool/filesystem/.zfs/shares/yourShareName
查看它们。不幸的是我不知道如何通过REST API,但至少你知道你的ACL应该在哪里结束。