Blame doc/man/archive_entry_acl.3

Packit Service 1d0348
.TH ARCHIVE_ENTRY_ACL 3 "February 15, 2017" ""
Packit Service 1d0348
.SH NAME
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB\%archive_entry_acl_add_entry\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_add_entry_w\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_clear\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_count\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_from_text\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_from_text_w\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_next\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_next_w\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_reset\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_to_text\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_to_text_w\fP,
Packit Service 1d0348
\fB\%archive_entry_acl_types\fP
Packit Service 1d0348
\- functions for manipulating Access Control Lists in archive entry descriptions
Packit Service 1d0348
.SH LIBRARY
Packit Service 1d0348
.ad l
Packit Service 1d0348
Streaming Archive Library (libarchive, -larchive)
Packit Service 1d0348
.SH SYNOPSIS
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB#include <archive_entry.h>\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_add_entry\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ permset\fP, \fI\%int\ tag\fP, \fI\%int\ qualifier\fP, \fI\%const\ char\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_add_entry_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ permset\fP, \fI\%int\ tag\fP, \fI\%int\ qualifier\fP, \fI\%const\ wchar_t\ *name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIvoid\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_clear\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_count\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_from_text\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ char\ *text\fP, \fI\%int\ type\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_from_text_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%const\ wchar_t\ *text\fP, \fI\%int\ type\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_next\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ *ret_type\fP, \fI\%int\ *ret_permset\fP, \fI\%int\ *ret_tag\fP, \fI\%int\ *ret_qual\fP, \fI\%const\ char\ **ret_name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_next_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP, \fI\%int\ *ret_type\fP, \fI\%int\ *ret_permset\fP, \fI\%int\ *ret_tag\fP, \fI\%int\ *ret_qual\fP, \fI\%const\ wchar_t\ **ret_name\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_reset\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%int\ type\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIchar *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_to_text\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%ssize_t\ *len_p\fP, \fI\%int\ flags\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIwchar_t *\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_to_text_w\fP(\fI\%struct\ archive_entry\ *a\fP, \fI\%ssize_t\ *len_p\fP, \fI\%int\ flags\fP);
Packit Service 1d0348
.br
Packit Service 1d0348
\fIint\fP
Packit Service 1d0348
.br
Packit Service 1d0348
\fB\%archive_entry_acl_types\fP(\fI\%struct\ archive_entry\ *a\fP);
Packit Service 1d0348
.SH DESCRIPTION
Packit Service 1d0348
.ad l
Packit Service 1d0348
The
Packit Service 1d0348
``Access Control Lists (ACLs)''
Packit Service 1d0348
extend the standard Unix perssion model.
Packit Service 1d0348
The ACL interface of
Packit Service 1d0348
\fB\%libarchive\fP
Packit Service 1d0348
supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by
Packit Service 1d0348
various levels of ACL support in operating systems, file systems and archive
Packit Service 1d0348
formats.
Packit Service 1d0348
.SS POSIX.1e Access Control Lists
Packit Service 1d0348
A POSIX.1e ACL consists of a number of independent entries.
Packit Service 1d0348
Each entry specifies the permission set as bitmask of basic permissions.
Packit Service 1d0348
Valid permissions in the
Packit Service 1d0348
are:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_READ (.B r )
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_WRITE (.B w )
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_EXECUTE (.B x )
Packit Service 1d0348
.RE
Packit Service 1d0348
The permissions correspond to the normal Unix permissions.
Packit Service 1d0348
.PP
Packit Service 1d0348
The
Packit Service 1d0348
specifies the principal to which the permission applies.
Packit Service 1d0348
Valid values are:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_USER
Packit Service 1d0348
The user specified by the name field.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_USER_OBJ
Packit Service 1d0348
The owner of the file.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_GROUP
Packit Service 1d0348
The group specied by the name field.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_GROUP_OBJ
Packit Service 1d0348
The group who owns the file.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_MASK
Packit Service 1d0348
The maximum permissions to be obtained via group permissions.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_OTHER
Packit Service 1d0348
Any principal who is not file owner or a member of the owning group.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
The principals
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_USER_OBJ,
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_GROUP_OBJ
Packit Service 1d0348
and
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_OTHER
Packit Service 1d0348
are equivalent to user, group and other in the classic Unix permission
Packit Service 1d0348
model and specify non-extended ACL entries.
Packit Service 1d0348
.PP
Packit Service 1d0348
All files with have an access ACL
Packit Service 1d0348
(.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS.)
Packit Service 1d0348
This specifies the permissions required for access to the file itself.
Packit Service 1d0348
Directories have an additional ACL
Packit Service 1d0348
(.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT,)
Packit Service 1d0348
which controls the initial access ACL for newly created directory entries.
Packit Service 1d0348
.SS NFSv4 Access Control Lists
Packit Service 1d0348
A NFSv4 ACL consists of multiple individual entries called Access Control
Packit Service 1d0348
Entries (ACEs).
Packit Service 1d0348
.PP
Packit Service 1d0348
There are four possible types of a NFSv4 ACE:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_TYPE_ALLOW
Packit Service 1d0348
Allow principal to perform actions requiring given permissions.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_TYPE_DENY
Packit Service 1d0348
Prevent principal from performing actions requiring given permissions.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_TYPE_AUDIT
Packit Service 1d0348
Log access attempts by principal which require given permissions.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_TYPE_ALARM
Packit Service 1d0348
Trigger a system alarm on access attempts by principal which require given
Packit Service 1d0348
permissions.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
The
Packit Service 1d0348
specifies the principal to which the permission applies.
Packit Service 1d0348
Valid values are:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_USER
Packit Service 1d0348
The user specified by the name field.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_USER_OBJ
Packit Service 1d0348
The owner of the file.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_GROUP
Packit Service 1d0348
The group specied by the name field.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_GROUP_OBJ
Packit Service 1d0348
The group who owns the file.
Packit Service 1d0348
It .BR ARCHIVE_ENTRY_ACL_EVERYONE
Packit Service 1d0348
Any principal who is not file owner or a member of the owning group.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
Entries with the
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_USER
Packit Service 1d0348
or
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_GROUP
Packit Service 1d0348
tag store the user and group name in the
Packit Service 1d0348
string and optionally the user or group ID in the
Packit Service 1d0348
integer.
Packit Service 1d0348
.PP
Packit Service 1d0348
NFSv4 ACE permissions and flags are stored in the same
Packit Service 1d0348
bitfield. Some permissions share the same constant and permission character but
Packit Service 1d0348
have different effect on directories than on files. The following ACE
Packit Service 1d0348
permissions are supported:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_READ_DATA (.B r )
Packit Service 1d0348
Read data (file).
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_LIST_DIRECTORY (.B r )
Packit Service 1d0348
List entries (directory).
Packit Service 1d0348
.TP
Packit Service 1d0348
ARCHIVE_ENTRY_ACL_WRITE_DATA (.B w )
Packit Service 1d0348
Write data (file).
Packit Service 1d0348
.TP
Packit Service 1d0348
ARCHIVE_ENTRY_ACL_ADD_FILE (.B w )
Packit Service 1d0348
Create files (directory).
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_EXECUTE (.B x )
Packit Service 1d0348
Execute file or change into a directory.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_APPEND_DATA (.B p )
Packit Service 1d0348
Append data (file).
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY (.B p )
Packit Service 1d0348
Create subdirectories (directory).
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_DELETE_CHILD (.B D )
Packit Service 1d0348
Remove files and subdirectories inside a directory.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_DELETE (.B d )
Packit Service 1d0348
Remove file or directory.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES (.B a )
Packit Service 1d0348
Read file or directory attributes.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES (.B A )
Packit Service 1d0348
Write file or directory attributes.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS (.B R )
Packit Service 1d0348
Read named file or directory attributes.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS (.B W )
Packit Service 1d0348
Write named file or directory attributes.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_READ_ACL (.B c )
Packit Service 1d0348
Read file or directory ACL.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_WRITE_ACL (.B C )
Packit Service 1d0348
Write file or directory ACL.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_WRITE_OWNER (.B o )
Packit Service 1d0348
Change owner of a file or directory.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_SYNCHRONIZE (.B s )
Packit Service 1d0348
Use synchronous I/O.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
The following NFSv4 ACL inheritance flags are supported:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT (.B f )
Packit Service 1d0348
Inherit parent directory ACE to files.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT (.B d )
Packit Service 1d0348
Inherit parent directory ACE to subdirectories.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY (.B i )
Packit Service 1d0348
Only inherit, do not apply the permission on the directory itself.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT (.B n )
Packit Service 1d0348
Do not propagate inherit flags. Only first-level entries inherit ACLs.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS (.B S )
Packit Service 1d0348
Trigger alarm or audit on successful access.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS (.B F )
Packit Service 1d0348
Trigger alarm or audit on failed access.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_ENTRY_INHERITED (.B I )
Packit Service 1d0348
Mark that ACE was inherited.
Packit Service 1d0348
.RE
Packit Service 1d0348
.SS Functions
Packit Service 1d0348
\fB\%archive_entry_acl_add_entry\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_add_entry_w\fP()
Packit Service 1d0348
add a single ACL entry.
Packit Service 1d0348
For the access ACL and non-extended principals, the classic Unix permissions
Packit Service 1d0348
are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL
Packit Service 1d0348
entries.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_clear\fP()
Packit Service 1d0348
removes all ACL entries and resets the enumeration pointer.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_count\fP()
Packit Service 1d0348
counts the ACL entries that have the given type mask.
Packit Service 1d0348
can be the bitwise-or of
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
Packit Service 1d0348
.RE
Packit Service 1d0348
for POSIX.1e ACLs and
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ALLOW
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_DENY
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_AUDIT
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ALARM
Packit Service 1d0348
.RE
Packit Service 1d0348
for NFSv4 ACLs. For POSIX.1e ACLs if
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit Service 1d0348
is included and at least one extended ACL entry is found,
Packit Service 1d0348
the three non-extended ACLs are added.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_from_text\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_from_text_w\fP()
Packit Service 1d0348
add new
Packit Service 1d0348
(or merge with existing)
Packit Service 1d0348
ACL entries from
Packit Service 1d0348
(wide)
Packit Service 1d0348
text. The argument
Packit Service 1d0348
may take one of the following values:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_NFS4
Packit Service 1d0348
.RE
Packit Service 1d0348
Supports all formats that can be created with
Packit Service 1d0348
\fB\%archive_entry_acl_to_text\fP()
Packit Service 1d0348
or respective
Packit Service 1d0348
\fB\%archive_entry_acl_to_text_w\fP().
Packit Service 1d0348
Existing ACL entries are preserved. To get a clean new ACL from text
Packit Service 1d0348
\fB\%archive_entry_acl_clear\fP()
Packit Service 1d0348
must be called first. Entries prefixed with
Packit Service 1d0348
``default:''
Packit Service 1d0348
are treated as
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
Packit Service 1d0348
unless
Packit Service 1d0348
is
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_NFS4.
Packit Service 1d0348
Invalid entries, non-parseable ACL entries and entries beginning with
Packit Service 1d0348
the
Packit Service 1d0348
Sq #
Packit Service 1d0348
character
Packit Service 1d0348
(comments)
Packit Service 1d0348
are skipped.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_next\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_next_w\fP()
Packit Service 1d0348
return the next entry of the ACL list.
Packit Service 1d0348
This functions may only be called after
Packit Service 1d0348
\fB\%archive_entry_acl_reset\fP()
Packit Service 1d0348
has indicated the presence of extended ACL entries.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_reset\fP()
Packit Service 1d0348
prepare reading the list of ACL entries with
Packit Service 1d0348
\fB\%archive_entry_acl_next\fP()
Packit Service 1d0348
or
Packit Service 1d0348
\fB\%archive_entry_acl_next_w\fP().
Packit Service 1d0348
The function returns either 0, if no non-extended ACLs are found.
Packit Service 1d0348
In this case, the access permissions should be obtained by
Packit Service 1d0348
\fBarchive_entry_mode\fP(3)
Packit Service 1d0348
or set using
Packit Service 1d0348
\fBchmod\fP(2).
Packit Service 1d0348
Otherwise, the function returns the same value as
Packit Service 1d0348
\fB\%archive_entry_acl_count\fP().
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_to_text\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_to_text_w\fP()
Packit Service 1d0348
convert the ACL entries for the given type into a
Packit Service 1d0348
(wide)
Packit Service 1d0348
string of ACL entries separated by newline. If the pointer
Packit Service 1d0348
is not NULL, then the function shall return the length of the string
Packit Service 1d0348
(not including the NULL terminator)
Packit Service 1d0348
in the location pointed to by
Packit Service 1d0348
.
Packit Service 1d0348
The
Packit Service 1d0348
argument is a bitwise-or.
Packit Service 1d0348
.PP
Packit Service 1d0348
The following flags are effective only on POSIX.1e ACL:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit Service 1d0348
Output access ACLs.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
Packit Service 1d0348
Output POSIX.1e default ACLs.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
Packit Service 1d0348
Prefix each default ACL entry with the word
Packit Service 1d0348
``default:''.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
Packit Service 1d0348
The mask and other ACLs don not contain a double colon.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
The following flags are effecive only on NFSv4 ACL:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_STYLE_COMPACT
Packit Service 1d0348
Do not output minus characters for unset permissions and flags in NFSv4 ACL
Packit Service 1d0348
permission and flag fields.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
The following flags are effective on both POSIX.1e and NFSv4 ACL:
Packit Service 1d0348
.RS 5
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
Packit Service 1d0348
Add an additional colon-separated field containing the user or group id.
Packit Service 1d0348
.TP
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
Packit Service 1d0348
Separate ACL entries with comma instead of newline.
Packit Service 1d0348
.RE
Packit Service 1d0348
.PP
Packit Service 1d0348
If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are returned.
Packit Service 1d0348
It the entry contains POSIX.1e ACLs and none of the flags
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit Service 1d0348
or
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
Packit Service 1d0348
are specified, both access and default entries are returned and default entries
Packit Service 1d0348
are prefixed with
Packit Service 1d0348
``default:''.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_types\fP()
Packit Service 1d0348
get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4
Packit Service 1d0348
ACL entries cannot be mixed, this function is a very efficient way to detect if
Packit Service 1d0348
an ACL already contains POSIX.1e or NFSv4 ACL entries.
Packit Service 1d0348
.SH RETURN VALUES
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fB\%archive_entry_acl_count\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_reset\fP()
Packit Service 1d0348
returns the number of ACL entries that match the given type mask.
Packit Service 1d0348
For POSIX.1e ACLS if the type mask includes
Packit Service 1d0348
.BR ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit Service 1d0348
and at least one extended ACL entry exists, the three classic Unix
Packit Service 1d0348
permissions are counted.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_from_text\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_from_text_w\fP()
Packit Service 1d0348
return
Packit Service 1d0348
.BR ARCHIVE_OK
Packit Service 1d0348
if all entries were successfully parsed and
Packit Service 1d0348
.BR ARCHIVE_WARN
Packit Service 1d0348
if one or more entries were invalid or non-parseable.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_next\fP()
Packit Service 1d0348
and
Packit Service 1d0348
\fB\%archive_entry_acl_next_w\fP()
Packit Service 1d0348
return
Packit Service 1d0348
.BR ARCHIVE_OK
Packit Service 1d0348
on success,
Packit Service 1d0348
.BR ARCHIVE_EOF
Packit Service 1d0348
if no more ACL entries exist
Packit Service 1d0348
and
Packit Service 1d0348
.BR ARCHIVE_WARN
Packit Service 1d0348
if
Packit Service 1d0348
\fB\%archive_entry_acl_reset\fP()
Packit Service 1d0348
has not been called first.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_to_text\fP()
Packit Service 1d0348
returns a string representing the ACL entries matching the given type and
Packit Service 1d0348
flags on success or NULL on error.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_to_text_w\fP()
Packit Service 1d0348
returns a wide string representing the ACL entries matching the given type
Packit Service 1d0348
and flags on success or NULL on error.
Packit Service 1d0348
.PP
Packit Service 1d0348
\fB\%archive_entry_acl_types\fP()
Packit Service 1d0348
returns a bitmask of ACL entry types or 0 if archive entry has no ACL entries.
Packit Service 1d0348
.SH SEE ALSO
Packit Service 1d0348
.ad l
Packit Service 1d0348
\fBarchive_entry\fP(3),
Packit Service 1d0348
\fBlibarchive\fP(3)