阿里云文件系统服务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 -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList # Apply new rule $value.SetAccessRule($fileSystemAccessRule) $value.Access
Set-Acl $value -Path "Z:"
icacls命令操作根目录
icacls z: #添加用户的完全控制权限 icacls z: /grant <用户名>:(F) #添加administrator的完全控制权限 icacls z: /grant administrator:(F) icacls z: #删除用户的所有权限 icacls z: /remove <用户名> #删除Everyone的所有权限 icacls z: /remove <用户名> icacls z:
注意:最好在文件系统刚创建时就设置好,否则由于继承机制,命令会需要修改子目录和子文件。