你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Set-AzDataLakeGen2ItemAclObject

创建/更新 DataLake gen2 项 ACL 对象,可在 Update-AzDataLakeGen2Item cmdlet 中使用。

语法

Set-AzDataLakeGen2ItemAclObject
   [-EntityId <String>]
   [-DefaultScope]
   -Permission <String>
   [-InputObject <PSPathAccessControlEntry[]>]
   -AccessControlType <AccessControlType>
   [<CommonParameters>]

说明

Set-AzDataLakeGen2ItemAclObject cmdlet 创建/更新 DataLake gen2 项 ACL 对象,可在 Update-AzDataLakeGen2Item cmdlet 中使用。 如果输入 ACL 中不存在具有相同 AccessControlType/EntityId/DefaultScope 的新 ACL 条目,则将创建新的 ACL 条目,否则更新现有 ACL 条目的权限。

示例

示例 1:使用 3 个 ACL 条目创建 ACL 对象,并在目录中更新 ACL

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl 
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl
Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/dir3" -ACL $acl

FileSystem Name: filesystem1

Path                 IsDirectory  Length          LastModified         Permissions  Owner                Group               
----                 -----------  ------          ------------         -----------  -----                -----               
dir1/dir3            True                         2020-03-23 09:34:31Z rwxrw-rw-+   $superuser           $superuser

此命令创建包含 3 个 ACL 条目的 ACL 对象(使用 -InputObject 参数将 acl 条目添加到现有 acl 对象),并更新目录中的 ACL。

示例 2:创建包含 4 个 ACL 条目的 ACL 对象,并更新现有 ACL 条目的权限

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl 
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rwx -InputObject $acl 
$acl

DefaultScope AccessControlType EntityId                             Permissions
------------ ----------------- --------                             -----------
True         User                                                   rwx        
False        Group                                                  rw-        
False        Other                                                  rwt        
False        User              ********-****-****-****-************ rwx        

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl 
$acl  

DefaultScope AccessControlType EntityId                             Permissions
------------ ----------------- --------                             -----------
True         User                                                   rwx        
False        Group                                                  rw-        
False        Other                                                  rw-        
False        User              ********-****-****-****-************ r-x

此命令首先创建包含 4 个 ACL 条目的 ACL 对象,然后使用不同的权限再次运行 cmdlet,但现有 ACL 条目的 AccessControlType/EntityId/DefaultScope 相同。 然后更新 ACL 条目的权限,但不会添加新的 ACL 条目。

参数

-AccessControlType

有四种类型:“user”向所有者或命名用户授予权限,“组”向拥有组或命名组授予权限,“掩码”限制向已命名用户和组成员授予的权限,“其他”向任何其他条目中未找到的所有用户授予权限。

类型:AccessControlType
接受的值:User, Group, Mask, Other
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-DefaultScope

设置此参数以指示 ACE 属于目录的默认 ACL;否则范围为隐式范围,ACE 属于访问 ACL。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EntityId

用户或组标识符。 对于 AccessControlType“mask”和“other”的条目,将省略它。 所有者和拥有组也省略用户或组标识符。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

如果输入 PSPathAccessControlEntry[] 对象,则会将新的 ACL 添加为输入 PSPathAccessControlEntry[] 对象的新元素。

类型:PSPathAccessControlEntry[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Permission

权限字段是一个 3 个字符序列,其中第一个字符是“r”来授予读取访问权限,第二个字符是“w”来授予写入访问权限,第三个字符是“x”,用于授予执行权限。 如果未授予访问权限,则使用“-”字符表示拒绝该权限。 粘性位也受支持,并且它由字母 t 或 T 表示在最终字符位置,具体取决于其他类别的执行位是分别设置还是未设置,缺少 t 或 T 表示未设置粘滞位。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

输入

None

输出

PSPathAccessControlEntry