| ACL_ADD_PERM(3) | Library Functions Manual | ACL_ADD_PERM(3) | 
acl_add_perm —
#include <sys/types.h>
#include <sys/acl.h>
int
  
  acl_add_perm(acl_permset_t
    permset_d, acl_perm_t
    perm);
acl_add_perm() function is a POSIX.1e call that adds
  the permission contained in perm to the permission set
  permset_d.
Note: it is not considered an error to attempt to add permissions that already exist in the permission set.
For POSIX.1e ACLs, valid values are:
| ACL_EXECUTE | Execute permission | 
| ACL_WRITE | Write permission | 
| ACL_READ | Read permission | 
For NFSv4 ACLs, valid values are:
| ACL_READ_DATA | Read permission | 
| ACL_LIST_DIRECTORY | Same as ACL_READ_DATA | 
| ACL_WRITE_DATA | Write permission, or permission to create files | 
| ACL_ADD_FILE | Same as ACL_READ_DATA | 
| ACL_APPEND_DATA | Permission to create directories. Ignored for files | 
| ACL_ADD_SUBDIRECTORY | Same as ACL_APPEND_DATA | 
| ACL_READ_NAMED_ATTRS | Ignored | 
| ACL_WRITE_NAMED_ATTRS | Ignored | 
| ACL_EXECUTE | Execute permission | 
| ACL_DELETE_CHILD | Permission to delete files and subdirectories | 
| ACL_READ_ATTRIBUTES | Permission to read basic attributes | 
| ACL_WRITE_ATTRIBUTES | Permission to change basic attributes | 
| ACL_DELETE | Permission to delete the object this ACL is placed on | 
| ACL_READ_ACL | Permission to read ACL | 
| ACL_WRITE_ACL | Permission to change the ACL and file mode | 
| ACL_SYNCHRONIZE | Ignored | 
Calling acl_add_perm() with
    perm equal to ACL_WRITE or ACL_READ brands the ACL as
    POSIX. Calling it with ACL_READ_DATA, ACL_LIST_DIRECTORY, ACL_WRITE_DATA,
    ACL_ADD_FILE, ACL_APPEND_DATA, ACL_ADD_SUBDIRECTORY, ACL_READ_NAMED_ATTRS,
    ACL_WRITE_NAMED_ATTRS, ACL_DELETE_CHILD, ACL_READ_ATTRIBUTES,
    ACL_WRITE_ATTRIBUTES, ACL_DELETE, ACL_READ_ACL, ACL_WRITE_ACL or
    ACL_SYNCHRONIZE brands the ACL as NFSv4.
acl_add_perm() function returns the value 0
  if successful; otherwise the value -1 is returned and the global
  variable errno is set to indicate the error.
acl_add_perm() function fails if:
EINVAL]acl_add_perm() function was added in
  FreeBSD 5.0.
acl_add_perm() function was written by
  Chris D. Faulhaber
  <jedgar@fxp.org>.
| June 25, 2009 | NetBSD 10.0 |