Blame doc/html/archive_entry_acl.3.html

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c
Packit 08bd4c
"http://www.w3.org/TR/html4/loose.dtd">
Packit 08bd4c
<html>
Packit 08bd4c
<head>
Packit 08bd4c
<meta name="generator" content="groff -Thtml, see www.gnu.org">
Packit 08bd4c
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Packit 08bd4c
<meta name="Content-Style" content="text/css">
Packit 08bd4c
<style type="text/css">
Packit 08bd4c
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit 08bd4c
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit 08bd4c
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit 08bd4c
       h1      { text-align: center }
Packit 08bd4c
</style>
Packit 08bd4c
<title></title>
Packit 08bd4c
</head>
Packit 08bd4c
<body>
Packit 08bd4c
Packit 08bd4c

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL(3) BSD Library Functions Manual

Packit 08bd4c
ARCHIVE_ENTRY_ACL(3)

Packit 08bd4c
Packit 08bd4c

NAME

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_add_entry,

Packit 08bd4c
archive_entry_acl_add_entry_w,
Packit 08bd4c
archive_entry_acl_clear,
Packit 08bd4c
archive_entry_acl_count,
Packit 08bd4c
archive_entry_acl_from_text,
Packit 08bd4c
archive_entry_acl_from_text_w,
Packit 08bd4c
archive_entry_acl_next,
Packit 08bd4c
archive_entry_acl_next_w,
Packit 08bd4c
archive_entry_acl_reset,
Packit 08bd4c
archive_entry_acl_to_text,
Packit 08bd4c
archive_entry_acl_to_text_w,
Packit 08bd4c
archive_entry_acl_types — functions for
Packit 08bd4c
manipulating Access Control Lists in archive entry
Packit 08bd4c
descriptions

Packit 08bd4c
Packit 08bd4c

LIBRARY

Packit 08bd4c
Packit 08bd4c

Streaming Archive Library

Packit 08bd4c
(libarchive, -larchive)

Packit 08bd4c
Packit 08bd4c

SYNOPSIS

Packit 08bd4c
Packit 08bd4c

#include

Packit 08bd4c
<archive_entry.h>

Packit 08bd4c
Packit 08bd4c

void

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_add_entry(struct archive_entry *a,

Packit 08bd4c
int type, int permset,
Packit 08bd4c
int tag, int qualifier,
Packit 08bd4c
const char *name);

Packit 08bd4c
Packit 08bd4c

void

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_add_entry_w(struct archive_entry *a,

Packit 08bd4c
int type, int permset,
Packit 08bd4c
int tag, int qualifier,
Packit 08bd4c
const wchar_t *name);

Packit 08bd4c
Packit 08bd4c

void

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_clear(struct archive_entry *a);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_count(struct archive_entry *a,

Packit 08bd4c
int type);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_from_text(struct archive_entry *a,

Packit 08bd4c
const char *text,
Packit 08bd4c
int type);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_from_text_w(struct archive_entry *a,

Packit 08bd4c
const wchar_t *text,
Packit 08bd4c
int type);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_next(struct archive_entry *a,

Packit 08bd4c
int type, int *ret_type,
Packit 08bd4c
int *ret_permset, int *ret_tag,
Packit 08bd4c
int *ret_qual,
Packit 08bd4c
const char **ret_name);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_next_w(struct archive_entry *a,

Packit 08bd4c
int type, int *ret_type,
Packit 08bd4c
int *ret_permset, int *ret_tag,
Packit 08bd4c
int *ret_qual,
Packit 08bd4c
const wchar_t **ret_name);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_reset(struct archive_entry *a,

Packit 08bd4c
int type);

Packit 08bd4c
Packit 08bd4c

char

Packit 08bd4c
*

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_to_text(struct archive_entry *a,

Packit 08bd4c
ssize_t *len_p, int flags);

Packit 08bd4c
Packit 08bd4c

wchar_t

Packit 08bd4c
*

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_to_text_w(struct archive_entry *a,

Packit 08bd4c
ssize_t *len_p, int flags);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_types(struct archive_entry *a);

Packit 08bd4c
Packit 08bd4c

DESCRIPTION

Packit 08bd4c
Packit 08bd4c

The ’’Access Control

Packit 08bd4c
Lists (ACLs)’’ extend the standard Unix perssion
Packit 08bd4c
model. The ACL interface of libarchive supports both
Packit 08bd4c
POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by
Packit 08bd4c
various levels of ACL support in operating systems, file
Packit 08bd4c
systems and archive formats.

Packit 08bd4c
Packit 08bd4c

POSIX.1e

Packit 08bd4c
Access Control Lists 
Packit 08bd4c
A POSIX.1e ACL consists of a number of independent entries.
Packit 08bd4c
Each entry specifies the permission set as bitmask of basic
Packit 08bd4c
permissions. Valid permissions in the permset
Packit 08bd4c
are:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_READ (r)

Packit 08bd4c
ARCHIVE_ENTRY_ACL_WRITE (w) 
Packit 08bd4c
ARCHIVE_ENTRY_ACL_EXECUTE (x)

Packit 08bd4c
Packit 08bd4c

The permissions correspond to

Packit 08bd4c
the normal Unix permissions.

Packit 08bd4c
Packit 08bd4c

The tag

Packit 08bd4c
specifies the principal to which the permission applies.
Packit 08bd4c
Valid values are:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_USER

Packit 08bd4c
Packit 08bd4c

The user specified by the name

Packit 08bd4c
field.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_USER_OBJ

Packit 08bd4c
Packit 08bd4c

The owner of the file.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_GROUP

Packit 08bd4c
Packit 08bd4c

The group specied by the name

Packit 08bd4c
field.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_GROUP_OBJ

Packit 08bd4c
Packit 08bd4c

The group who owns the

Packit 08bd4c
file.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_MASK

Packit 08bd4c
Packit 08bd4c

The maximum permissions to be

Packit 08bd4c
obtained via group permissions.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_OTHER

Packit 08bd4c
Packit 08bd4c

Any principal who is not file

Packit 08bd4c
owner or a member of the owning group.

Packit 08bd4c
Packit 08bd4c

The principals

Packit 08bd4c
ARCHIVE_ENTRY_ACL_USER_OBJ, ARCHIVE_ENTRY_ACL_GROUP_OBJ and
Packit 08bd4c
ARCHIVE_ENTRY_ACL_OTHER are equivalent to user, group and
Packit 08bd4c
other in the classic Unix permission model and specify
Packit 08bd4c
non-extended ACL entries.

Packit 08bd4c
Packit 08bd4c

All files with

Packit 08bd4c
have an access ACL (ARCHIVE_ENTRY_ACL_TYPE_ACCESS). This
Packit 08bd4c
specifies the permissions required for access to the file
Packit 08bd4c
itself. Directories have an additional ACL
Packit 08bd4c
(ARCHIVE_ENTRY_ACL_TYPE_DEFAULT), which controls the initial
Packit 08bd4c
access ACL for newly created directory entries.

Packit 08bd4c
Packit 08bd4c

NFSv4 Access

Packit 08bd4c
Control Lists 
Packit 08bd4c
A NFSv4 ACL consists of multiple individual entries called
Packit 08bd4c
Access Control Entries (ACEs).

Packit 08bd4c
Packit 08bd4c

There are four

Packit 08bd4c
possible types of a NFSv4 ACE:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_ALLOW

Packit 08bd4c
Packit 08bd4c

Allow principal to perform

Packit 08bd4c
actions requiring given permissions.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_DENY

Packit 08bd4c
Packit 08bd4c

Prevent principal from

Packit 08bd4c
performing actions requiring given permissions.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_AUDIT

Packit 08bd4c
Packit 08bd4c

Log access attempts by

Packit 08bd4c
principal which require given permissions.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_ALARM

Packit 08bd4c
Packit 08bd4c

Trigger a system alarm on

Packit 08bd4c
access attempts by principal which require given
Packit 08bd4c
permissions.

Packit 08bd4c
Packit 08bd4c

The tag

Packit 08bd4c
specifies the principal to which the permission applies.
Packit 08bd4c
Valid values are:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_USER

Packit 08bd4c
Packit 08bd4c

The user specified by the name

Packit 08bd4c
field.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_USER_OBJ

Packit 08bd4c
Packit 08bd4c

The owner of the file.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_GROUP

Packit 08bd4c
Packit 08bd4c

The group specied by the name

Packit 08bd4c
field.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_GROUP_OBJ

Packit 08bd4c
Packit 08bd4c

The group who owns the

Packit 08bd4c
file.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_EVERYONE

Packit 08bd4c
Packit 08bd4c

Any principal who is not file

Packit 08bd4c
owner or a member of the owning group.

Packit 08bd4c
Packit 08bd4c

Entries with the

Packit 08bd4c
ARCHIVE_ENTRY_ACL_USER or ARCHIVE_ENTRY_ACL_GROUP tag store
Packit 08bd4c
the user and group name in the name string and
Packit 08bd4c
optionally the user or group ID in the qualifier
Packit 08bd4c
integer.

Packit 08bd4c
Packit 08bd4c

NFSv4 ACE

Packit 08bd4c
permissions and flags are stored in the same permset
Packit 08bd4c
bitfield. Some permissions share the same constant and
Packit 08bd4c
permission character but have different effect on
Packit 08bd4c
directories than on files. The following ACE permissions are
Packit 08bd4c
supported:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_READ_DATA (r)

Packit 08bd4c
Packit 08bd4c

Read data (file).

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_LIST_DIRECTORY (r)

Packit 08bd4c
Packit 08bd4c

List entries (directory).

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_WRITE_DATA (w)

Packit 08bd4c
Packit 08bd4c

Write data (file).

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ADD_FILE (w)

Packit 08bd4c
Packit 08bd4c

Create files (directory).

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_EXECUTE (x)

Packit 08bd4c
Packit 08bd4c

Execute file or change into a

Packit 08bd4c
directory.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_APPEND_DATA (p)

Packit 08bd4c
Packit 08bd4c

Append data (file).

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY (p)

Packit 08bd4c
Packit 08bd4c

Create subdirectories

Packit 08bd4c
(directory).

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_DELETE_CHILD (D)

Packit 08bd4c
Packit 08bd4c

Remove files and subdirectories

Packit 08bd4c
inside a directory.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_DELETE (d)

Packit 08bd4c
Packit 08bd4c

Remove file or directory.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES (a)

Packit 08bd4c
Packit 08bd4c

Read file or directory

Packit 08bd4c
attributes.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES (A)

Packit 08bd4c
Packit 08bd4c

Write file or directory

Packit 08bd4c
attributes.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS (R)

Packit 08bd4c
Packit 08bd4c

Read named file or directory

Packit 08bd4c
attributes.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS (W)

Packit 08bd4c
Packit 08bd4c

Write named file or directory

Packit 08bd4c
attributes.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_READ_ACL (c)

Packit 08bd4c
Packit 08bd4c

Read file or directory ACL.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_WRITE_ACL (C)

Packit 08bd4c
Packit 08bd4c

Write file or directory

Packit 08bd4c
ACL.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_WRITE_OWNER (o)

Packit 08bd4c
Packit 08bd4c

Change owner of a file or

Packit 08bd4c
directory.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_SYNCHRONIZE (s)

Packit 08bd4c
Packit 08bd4c

Use synchronous I/O.

Packit 08bd4c
Packit 08bd4c

The following

Packit 08bd4c
NFSv4 ACL inheritance flags are supported:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT (f)

Packit 08bd4c
Packit 08bd4c

Inherit parent directory ACE to

Packit 08bd4c
files.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT (d)

Packit 08bd4c
Packit 08bd4c

Inherit parent directory ACE to

Packit 08bd4c
subdirectories.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY (i)

Packit 08bd4c
Packit 08bd4c

Only inherit, do not apply the

Packit 08bd4c
permission on the directory itself.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT

Packit 08bd4c
(n)

Packit 08bd4c
Packit 08bd4c

Do not propagate inherit flags.

Packit 08bd4c
Only first-level entries inherit ACLs.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS (S)

Packit 08bd4c
Packit 08bd4c

Trigger alarm or audit on

Packit 08bd4c
successful access.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS (F)

Packit 08bd4c
Packit 08bd4c

Trigger alarm or audit on

Packit 08bd4c
failed access.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_ENTRY_INHERITED (I)

Packit 08bd4c
Packit 08bd4c

Mark that ACE was

Packit 08bd4c
inherited.

Packit 08bd4c
Packit 08bd4c

Functions

Packit 08bd4c

Packit 08bd4c
archive_entry_acl_add_entry() and
Packit 08bd4c
archive_entry_acl_add_entry_w() add a single ACL
Packit 08bd4c
entry. For the access ACL and non-extended principals, the
Packit 08bd4c
classic Unix permissions are updated. An archive entry
Packit 08bd4c
cannot contain both POSIX.1e and NFSv4 ACL entries.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_clear()

Packit 08bd4c
removes all ACL entries and resets the enumeration
Packit 08bd4c
pointer.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_count()

Packit 08bd4c
counts the ACL entries that have the given type mask.
Packit 08bd4c
type can be the bitwise-or of

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_ACCESS

Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT

Packit 08bd4c
Packit 08bd4c

for POSIX.1e

Packit 08bd4c
ACLs and

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_ALLOW

Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_DENY 
Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_AUDIT 
Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_ALARM

Packit 08bd4c
Packit 08bd4c

for NFSv4 ACLs.

Packit 08bd4c
For POSIX.1e ACLs if ARCHIVE_ENTRY_ACL_TYPE_ACCESS is
Packit 08bd4c
included and at least one extended ACL entry is found, the
Packit 08bd4c
three non-extended ACLs are added.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_from_text()

Packit 08bd4c
and archive_entry_acl_from_text_w() add new (or merge
Packit 08bd4c
with existing) ACL entries from (wide) text. The argument
Packit 08bd4c
type may take one of the following values:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_ACCESS

Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT 
Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_NFS4

Packit 08bd4c
Packit 08bd4c

Supports all

Packit 08bd4c
formats that can be created with
Packit 08bd4c
archive_entry_acl_to_text() or respective
Packit 08bd4c
archive_entry_acl_to_text_w(). Existing ACL entries
Packit 08bd4c
are preserved. To get a clean new ACL from text
Packit 08bd4c
archive_entry_acl_clear() must be called first.
Packit 08bd4c
Entries prefixed with ’’default:’’
Packit 08bd4c
are treated as ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless
Packit 08bd4c
type is ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries,
Packit 08bd4c
non-parseable ACL entries and entries beginning with the
Packit 08bd4c
’#’ character (comments) are skipped.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_next()

Packit 08bd4c
and archive_entry_acl_next_w() return the next entry
Packit 08bd4c
of the ACL list. This functions may only be called after
Packit 08bd4c
archive_entry_acl_reset() has indicated the presence
Packit 08bd4c
of extended ACL entries.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_reset()

Packit 08bd4c
prepare reading the list of ACL entries with
Packit 08bd4c
archive_entry_acl_next() or
Packit 08bd4c
archive_entry_acl_next_w(). The function returns
Packit 08bd4c
either 0, if no non-extended ACLs are found. In this case,
Packit 08bd4c
the access permissions should be obtained by
Packit 08bd4c
archive_entry_mode(3) or set using chmod(2). Otherwise, the
Packit 08bd4c
function returns the same value as
Packit 08bd4c
archive_entry_acl_count().

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_to_text()

Packit 08bd4c
and archive_entry_acl_to_text_w() convert the ACL
Packit 08bd4c
entries for the given type into a (wide) string of ACL
Packit 08bd4c
entries separated by newline. If the pointer len_p is
Packit 08bd4c
not NULL, then the function shall return the length of the
Packit 08bd4c
string (not including the NULL terminator) in the location
Packit 08bd4c
pointed to by len_p. The flag argument is a
Packit 08bd4c
bitwise-or.

Packit 08bd4c
Packit 08bd4c

The following

Packit 08bd4c
flags are effective only on POSIX.1e ACL:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_ACCESS

Packit 08bd4c
Packit 08bd4c

Output access ACLs.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_TYPE_DEFAULT

Packit 08bd4c
Packit 08bd4c

Output POSIX.1e default

Packit 08bd4c
ACLs.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT

Packit 08bd4c
Packit 08bd4c

Prefix each default ACL entry

Packit 08bd4c
with the word ’’default:’’.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_STYLE_SOLARIS

Packit 08bd4c
Packit 08bd4c

The mask and other ACLs don not

Packit 08bd4c
contain a double colon.

Packit 08bd4c
Packit 08bd4c

The following

Packit 08bd4c
flags are effecive only on NFSv4 ACL:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_STYLE_COMPACT

Packit 08bd4c
Packit 08bd4c

Do not output minus characters

Packit 08bd4c
for unset permissions and flags in NFSv4 ACL permission and
Packit 08bd4c
flag fields.

Packit 08bd4c
Packit 08bd4c

The following

Packit 08bd4c
flags are effective on both POSIX.1e and NFSv4 ACL:

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID

Packit 08bd4c
Packit 08bd4c

Add an additional

Packit 08bd4c
colon-separated field containing the user or group id.

Packit 08bd4c
Packit 08bd4c

ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA

Packit 08bd4c
Packit 08bd4c

Separate ACL entries with comma

Packit 08bd4c
instead of newline.

Packit 08bd4c
Packit 08bd4c

If the archive

Packit 08bd4c
entry contains NFSv4 ACLs, all types of NFSv4 ACLs are
Packit 08bd4c
returned. It the entry contains POSIX.1e ACLs and none of
Packit 08bd4c
the flags ARCHIVE_ENTRY_ACL_TYPE_ACCESS or
Packit 08bd4c
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are specified, both access
Packit 08bd4c
and default entries are returned and default entries are
Packit 08bd4c
prefixed with ’’default:’’.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_types()

Packit 08bd4c
get ACL entry types contained in an archive entry’s
Packit 08bd4c
ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this
Packit 08bd4c
function is a very efficient way to detect if an ACL already
Packit 08bd4c
contains POSIX.1e or NFSv4 ACL entries.

Packit 08bd4c
Packit 08bd4c

RETURN VALUES

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_count()

Packit 08bd4c
and archive_entry_acl_reset() returns the number of
Packit 08bd4c
ACL entries that match the given type mask. For POSIX.1e
Packit 08bd4c
ACLS if the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS
Packit 08bd4c
and at least one extended ACL entry exists, the three
Packit 08bd4c
classic Unix permissions are counted.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_from_text()

Packit 08bd4c
and archive_entry_acl_from_text_w() return ARCHIVE_OK
Packit 08bd4c
if all entries were successfully parsed and ARCHIVE_WARN if
Packit 08bd4c
one or more entries were invalid or non-parseable.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_next()

Packit 08bd4c
and archive_entry_acl_next_w() return ARCHIVE_OK on
Packit 08bd4c
success, ARCHIVE_EOF if no more ACL entries exist and
Packit 08bd4c
ARCHIVE_WARN if archive_entry_acl_reset() has not
Packit 08bd4c
been called first.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_to_text()

Packit 08bd4c
returns a string representing the ACL entries matching the
Packit 08bd4c
given type and flags on success or NULL on error.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_to_text_w()

Packit 08bd4c
returns a wide string representing the ACL entries matching
Packit 08bd4c
the given type and flags on success or NULL on error.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_entry_acl_types()

Packit 08bd4c
returns a bitmask of ACL entry types or 0 if archive entry
Packit 08bd4c
has no ACL entries.

Packit 08bd4c
Packit 08bd4c

SEE ALSO

Packit 08bd4c
Packit 08bd4c

archive_entry(3),

Packit 08bd4c
libarchive(3)

Packit 08bd4c
Packit 08bd4c

BSD

Packit 08bd4c
February 15, 2017 BSD

Packit 08bd4c

Packit 08bd4c
</body>
Packit 08bd4c
</html>