Set-AzDataLakeGen2ItemAclObject
建立/更新 DataLake gen2 專案 ACL 物件,可在 Update-AzDataLakeGen2Item Cmdlet 中使用。
語法
Set-AzDataLakeGen2ItemAclObject
[-EntityId <String>]
[-DefaultScope]
-Permission <String>
[-InputObject <PSPathAccessControlEntry[]>]
-AccessControlType <AccessControlType>
[<CommonParameters>]
Description
Set-AzDataLakeGen2ItemAclObject Cmdlet 會建立/更新 DataLake gen2 專案 ACL 物件,此物件可用於 Update-AzDataLakeGen2Item Cmdlet。 如果具有相同 AccessControlType/EntityId/DefaultScope 的新 ACL 專案不存在於輸入 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