man Pages(2): System Calls
  Search only this book
View this book in:
Download this book in PDF (748 KB)

acl(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

NAME

    acl, facl- get or set a file's Access Control List (ACL)

SYNOPSIS

    #include <sys/acl.h>

    int acl(char * pathp, int cmd, int nentries, aclent_t * aclbufp);
    int facl(int fildes, int cmd, int nentries, aclent_t * aclbufp);

DESCRIPTION

    The acl() and facl() functions get or set the ACL of a file whose name is given by pathp or referenced by the open file descriptor fildes . The nentries argument specifies how many ACL entries fit into buffer aclbufp . The acl() function is used to manipulate ACL on file system objects.

    The following values for cmd are supported:

    SETACL

    nentries ACL entries, specified in buffer aclbufp , are stored in the file's ACL. This command can only be executed by a process that has an effective user ID equal to the owner of the file. All directories in the path name must be searchable.

    GETACL

    Buffer aclbufp is filled with the file's ACL entries. Read access to the file is not required, but all directories in the path name must be searchable.

    GETACLCNT

    The number of entries in the file's ACL is returned. Read access to the file is not required, but all directories in the path name must be searchable.

RETURN VALUES

    Upon successful completion, acl() and facl() return 0 if cmd is SETACL . If cmd is GETACL or GETACLCNT , the number of ACL entries is returned. Otherwise, -1 is returned and errno is set to indicate the error.

ERRORS

    The acl() function will fail if:

    EACCESS

    The caller does not have access to a component of the pathname.

    EFAULT

    The pathp or aclbufp argument points to an illegal address.

    EINVAL

    The cmd argument is not GETACL , SETACL , or GETACLCNT ; the cmd argument is SETACL and nentries is less than 3; or the cmd argument is SETACL and the ACL specified in aclbufp is not valid.

    EIO

    A disk I/O error has occurred while storing or retrieving the ACL.

    ENOENT

    A component of the path does not exist.

    ENOSPC

    The cmd argument is GETACL and nentries is less than the number of entries in the file's ACL , or the cmd argument is SETACL and there is insufficient space in the file system to store the ACL .

    ENOTDIR

    A component of the path specified by pathp is not a directory, or the cmd argument is SETACL and an attempt is made to set a default ACL on a file type other than a directory.

    ENOSYS

    The cmd argument is SETACL and the file specified by pathp resides on a file system that does not support ACLs , or the acl() function is not supported by this implementation.

    EPERM

    The cmd argument is SETACL and the effective user ID of the caller does not match the owner of the file.

    EROFS

    The cmd argument is SETACL and the file specified by pathp resides on a file system that is mounted read-only.

ATTRIBUTES

    See attributes(5) for descriptions of the following attributes:

     ATTRIBUTE TYPE ATTRIBUTE VALUE
     Interface Stability Evolving

SEE ALSO

SunOS 5.7  Last Revised 18 Mar 1996

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO