HP-UX Reference (11i v3 07/02) - 2 System Calls (vol 5)
a
acl(2) acl(2)
• If pathp points to a directory, there is at most one entry each of type
DEF_USER_OBJ ,
DEF_GROUP_OBJ , DEF_CLASS_OBJ
, and DEF_OTHER_OBJ
.
• Entries of type
USER, GROUP,
DEF_USER,orDEF_GROUP do not contain duplicate entries. A
duplicate entry is one of the same type containing the same numeric ID.
• If the ACL contains no entries of type
USER and no entries of type GROUP, then the entries of type
GROUP_OBJ and CLASS_OBJ have the same permissions.
• If the ACL contains no entries of type
DEF_USER and no entries of type DEF_GROUP, and an entry
of type
DEF_GROUP_OBJ
is specified, then an entry of type DEF_CLASS_OBJ
is also specified and
the two entries have the same permissions.
Security Restrictions
The
ACL_SET value for cmd can only be executed by a process that has an effective user ID equal to the
owner of the file, or by the superuser, or by a user with the
OWNER privilege.
See privileges(5) for more information about privileged access on systems that support fine-grained
privileges.
RETURN VALUE
acl() returns the following values:
n Successful completion. Returns the number of ACL entries for cmd ACL_CNT and ACL_GET.
0 Successful completion. Returns 0 for cmd ACL_SET.
-1 Failure. errno is set to indicate the error.
ERRORS
If acl() fails, the ACL is unchanged, and errno is set to one of the following values:
[EACCES] The caller does not have access to a component of the path name.
[EINVAL] cmd is not ACL_GET, ACL_SET,or
ACL_CNT.
[EINVAL] cmd is
ACL_SET and nentries is less than the number of mandatory ACL entries (4).
[EINVAL] cmd is ACL_SET and the ACL specified in aclbufp is not valid (see above discussion, and
aclsort(3C)).
[EIO] A disk I/O error has occurred while storing or retrieving the ACL.
[EPERM] cmd is
ACL_SET and the effective user ID of the caller does not match the owner of the
file, and the caller is not the superuser or a user with OWNER privilege.
[ENOENT] A component of the path does not exist.
[ENOSPC] cmd is
ACL_GET and nentries is less than the number of entries in the file’s ACL.
[ENOSPC] cmd is ACL_SET and there is insufficient space to store the ACL.
[ENOSPC] cmd is ACL_SET and nentries is greater than NACLVENTRIES , which is defined in
<sys/aclv.h> .
[ENOTDIR] A component of the path specified by pathp is not a directory.
[ENOTDIR] cmd is ACL_SET and an attempt is made to set a default ACL on a file type other than a
directory.
[ENOSYS] cmd is ACL_SET, the file specified by pathp resides on a local non-JFS file system, and
additional entries were specified in the ACL.
[EOPNOTSUPP]
cmd is ACL_SET, the file specified by pathp resides on a nonlocal file system, and addi-
tional entries were specified in the ACL.
[EROFS] cmd is ACL_SET and the file specified by pathp resides on a file system that is mounted
read-only.
[EFAULT] aclbufp points to an illegal address.
36 Hewlett-Packard Company − 2 − HP-UX 11i Version 3: February 2007