ACL entry :
	- tag type
	- qualifieur
	- permissions

Tag Types : ACL_USER_OBJ, ACL_GROUP_OBJ, ACL_OTHER_OBJ, ACL_USER, ACL_GROUP

Maximum : _POSIX_ACL_PATH_MAX

Header : <sys/acl.h>

	acl_entry_t
	acl_perm_t	ACL_EXECUTE, ACL_READ, ACL_WRITE
	acl_permset_t
	acl_t
	acl_tag_t
	acl_type_t	ACL_TYPE_ACCESS, ACL_TYPE_DEFAULT

Representation ASCII

    Format court :

	3 champs separes par des ``:''
	- type : u[ser], g[roup], o[ther]
	- qualifieur : uid, gid, vide
	- permissions : r, w, x, -

	acl_entry[,acl_entry...]

    Format long :
	# file: filename
	# owner: uid
	# group: gid
	acl_entry
	...

Utilitaires :

	getacl [-d] [file...]

	setacl [-k] [-b] [-d] [-x entries] [-X file1] [-u entries] [-U file2] [files...]

		-k delete any default ACL on the specified files
		-b remove all entries except the three required entries
		-d
		-x remove ACL entries
		-X remove ACl entries specified in file
		-u update ACL entries
		-U update ACL entries specified in file

		-b evalue avant les autres options
Fonctions :

int		acl_add_perm (acl_permset_t permset_d, const acl_perm_t perm_d);

	EINVAL, ENOSYS

int	acl_clear_perm (acl_permset_t permset_d);

	EINVAL, ENOSYS

int		acl_copy_entry (const acl_entry_t src_d, acl_entry t dest_d);

	EINVAL, ENOSYS

ssize_t		acl_copy_ext (void *buf_p, acl_t acl_d, ssize_t size);

	EINVAL, ERANGE, ENOSYS

acl_t		acl_copy_int (const void *buf_p);

	EINVAL, ENOMEM, ENOSYS

acl_entry_t	acl_create_entry (acl_t *acl_p);

	EINVAl, ENOMEM, ENOSYS

int		acl_delete_def_fd (const int fd);

	EBADF, ENOSYS, ENOTDIR, ENOTSUP, EPERM, EROFS

int		acl_delete_def_file (const char *path_p);

	EACCESS, ENAMETOOLONG, ENOENT, ENOSYS, ENOTDIR, ENOTSUP, EPERM, EROFS

int		acl_delete_entry (acl_entry_d entry_d);

	EINVAL, ENOSYS

int		acl_delete_perm (acl_permset_t permset_d, acl_perm_t perm_d);

	EINVAL, ENOSYS

acl_t		acl_dup (const acl_t acl_d);

	EINVAL, ENOMEM, ENOSYS

int		acl_first_entry (acl_t acl_d);

	EINVAL, ENOSYS

int		acl_free (acl_t acl_d);

	EINVAL, ENOSYS

int		acl_free_qualifier (const void *qualifier_p,
				    const acl_tag_t tag_type_d);

	EINVAL, ENOSYS

int 		acl_free_text (const char *buf_p);

	EINVAl, ENOSYS

acl_t		acl_from_text (const char *buf_p);

	EINVAL, ENOMEM, ENOSYS

acl_entry_t	acl_get_entry (const acl_t acl_d);

	EINVAL, ENOSYS, ENOPOSIT

acl_t		acl_get_fd (const int fd, const acl_type_t type_d);

	EACCESS, EBADF, EINVAL, ENOMEM, ENOSYS, ENOTDIR

acl_t		acl_get_file (const char *path_p, const acl_type_t type_d);

	EACCESS, EINVAL, ENAMETOOLONG, ENOENT, ENOMEM, ENOTDIR, ENOSYS

int		acl_get_permset (const acl_entry_t entry_d,
				 acl_permset_t *permset_p);

	EINVAL, ENOSYS

void		*acl_get_qualifier (const acl_entry_t entry_d);

	EINVAL, ENOSYS

int		acl_get_tag_type (const acl_entry_t entry_d,
				  acl_tag_t *tag_type_p);

	EINVAL, ENOSYS

acl_t		acl_init (const size_t size);

	ENOMEM, ENOSYS

int		acl_set_fd (const int fd, const acl_type_t type_d,
			    const acl_t acl_d);

	EACCESS, EACL2BIG, EBADF, EINVAL, ENOSPC, ENOSYS, ENOTDIR,
	ENOTSUP, EPERM, EROFS

int		acl_set_file (const char *path_p, const_acl_type_t type_d,
			      const acl_t acl_d);

	EACCESS, EACL2BIG, EINVAL, ENAMETOOLONG, ENOENT, ENOSPC, ENOSYS,
	ENOTDIR, ENOTSUP, EPERM, EROFS

int		acl_set_permset (acl_entry_t entry_d,
				 const acl_permset_t permset_d);

	EINVAL, ENOSYS

int		acl_set_qualifier (act_entry_t entry_d,
				   const void *tag_qualifier_d);

	EINVAL, ENOSYS

int		acl_set_tag_type (acl_entry_t entry_d,
				  const acl_tag_t tag_type_d);

	EINVAL, ENOSYS

ssize_t		acl_size (const acl_t acl_d)

	EINVAL, ENOSYS

char		*acl_to_text (const acl_t acl_d, ssize_t *len_p);

	EINVAL, ENOMEM, ENOSYS

int		acl_valid (acl_t acl_d, acl_entry_t *entry_p);

	EINVAL, ENOSYS


