阿里云文件系统服务SMB文件系统(NAS SMB)在没有打开SMB ACL功能时,只支持只读操作,无法修改根目录权限。
在参考《将阿里云SMB协议文件系统挂载点接入AD域》https://help.aliyun.com/document_detail/154930.html,打开SMB ACL功能之后,用户即可修改根目录权限。
需要注意的是NAS SMB只支持SMB协议,不支持Windows其他RPC协议,直接用Windows文件资源管理器普通网络路径\\nas-mount-point.nas.aliyuncs.com\myshare访问,在设置ACL时,会遇到因RPC服务器不可用而无法确定NAS挂载点是否已加入域的情况。如下图所示。
文档《从Windows以AD域用户身份挂载并使用阿里云SMB协议文件系统》https://help.aliyun.com/document_detail/160154.htm介绍了需要使用mklink工具进行文件系统映射,再对文件系统映射进行ACL设置。但是这个方法并不适用于文件系统的根目录,无法在mklink的链接目录上设置ACL。
我们推荐的设置方法是通过Get-Acl, Set-Acl Powershell命令操作挂载盘,或者通过icacls命令操作挂载盘。具体示例如下:
Get-Acl, Set-Acl Powershell命令操作根目录
$value=Get-Acl-Path"Z:"# Get properties$value.Access
# Set properties$identity="Administrator"$fileSystemRights="FullControl"$type="Allow"# Create new rule$fileSystemAccessRuleArgumentList=$identity,$fileSystemRights,$type$fileSystemAccessRule=New-Object-TypeNameSystem.Security.AccessControl.FileSystemAccessRule-ArgumentList$fileSystemAccessRuleArgumentList# Apply new rule$value.SetAccessRule($fileSystemAccessRule)$value.Access
Set-Acl$value-Path"Z:"
icacls命令操作根目录
icaclsz:#添加用户的完全控制权限icaclsz:/grant<用户名>:(F)#添加administrator的完全控制权限icaclsz:/grantadministrator:(F)icaclsz:#删除用户的所有权限icaclsz:/remove<用户名>#删除Everyone的所有权限icaclsz:/remove<用户名>icaclsz:
注意:最好在文件系统刚创建时就设置好,否则由于继承机制,命令会需要修改子目录和子文件。