3.5.2 Modify an ACL
To modify an access control list (ACL) for an Exascale vault or file, use the ESCLI
chacl command and specify:
-
The vault or file for which you are modifying the ACL.
-
The ACL string, which defines the modification to the ACL.
The ACL string has the following format:
[+]user-ID1:acl-permission[+][;user-ID2:acl-permission[+]]...In the ACL string:
-
An optional plus (
+) operator at the beginning of the ACL string indicates that the specified ACL string merges into the existing ACL. In this case, the changes only impact the users in the specified ACL string, and all other users in the existing ACL retain their permissions. Without this optional plus (+) operator, the ACL is completely overwritten by the specified ACL string, enabling permissions only for the users in the specified ACL string. -
user-IDn: Specifies an Exascale user ID.
Depending on the user creation method, the user ID may be a system-generated value (for example,
96a68014-5762-4579-86ee-29eb743decbd) or a user-specified value (for example,scott). -
acl-permission: Specifies an ACL permission setting, which can be one of the following:
I | inspect: Specifies that the user can view attributes of the file or vault, but not its contents.R | read: Specifies that the user can read contents of the file, or list files in the vault. Also confers theinspectpermission.U | use: Specifies that the user can write to the file, or use the vault. Also confers all preceding permissions.M | manage: Specifies that the user can manage the file or vault. Also confers all preceding permissions.0 | none: Specifies that the user is removed from the ACL and loses all permissions. This setting can be used only in conjunction with the initial plus (+) operator to remove a user from an existing ACL.
Starting with Oracle Exadata System Software release 26.1.0, an optional plus (
+) operator following an acl-permission value guarantees that the user has at least that privilege level. For example,R+ensures the user has at least theR(read) privilege. If the user already has a higher privilege, such asM(manage), their privileges remain unchanged. You can only use this option when updating an ACL and you cannot use this option with the0(none) privilege.
-
Following are various use-cases for modifying an ACL, along with accompanying examples:
-
To set the ACL for a vault, use the
chaclcommand and specify the vault and the new ACL string.For example, to make
jennythe sole manager of@vault1use:@> chacl @vault1 jenny:manage -
To set the ACL for a file, use the
chaclcommand and specify the file and the new ACL string.For example, to make
jennythe manager andjilla reader of@vault1/file1use:@> chacl @vault1/file1 jenny:manage;jill:read -
To modify an existing ACL, use the
chaclcommand, specify the vault or file name, and specify an ACL string beginning with a+operator.For example, the following command enables
peteras a user of@vault1:@> chacl @vault1 +peter:useIn this example, if
peteris not listed in the existing ACL, an entry forpeteris added to the ACL. Otherwise, if the existing ACL already includes an entry forpeter, the existing entry is modified. In either case, all other users in the existing ACL retain their permissions. -
To modify an existing ACL to ensure at least a specified privilege level, use the
chaclcommand, specify the vault or file name, and specify an ACL string beginning with a+operator that also contains ACL privileges with trailing+operators.For example, the following command ensures that both
peterandjasonhave at least thereadprivilege on@vault1:@> chacl @vault1 +peter:read+;jason:read+In this example, if
jasonpreviously hadinspectprivilege andpeterhaduseprivilege, the command would upgradejasontoread, whilepeterwould retain the more powerfuluseprivilege.If either
peterorjasonwere not previously in the ACL, then they would be added with thereadprivilege. In any case, all other users in the existing ACL would retain their permissions.The option to specify a minimum privilege level using a trailing
+operator is only available starting with Oracle Exadata System Software release 26.1.0. -
To remove a user from an ACL, use the
chaclcommand, specify the vault or file name, and specify an ACL string that begins with+and contains0ornoneas the ACL privilege.For example, to remove
jillfrom the ACL for@vault1/file1use:@> chacl @vault1/file1 +jill:none
Parent topic: Administer Access Control Lists