#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/acl.h>#include <sys/stat.h>#include <sys/types.h>#include <time.h>#include <unistd.h>#include <atalk/acl.h>#include <atalk/afp.h>#include <atalk/logger.h>#include <atalk/unix.h>#include <atalk/util.h>Macros | |
| #define | SEARCH_GROUP_OBJ 0x01 |
| #define | SEARCH_MASK 0x02 |
Functions | |
| int | get_nfsv4_acl (const char *name, ace_t **retAces) |
| Get ACL. | |
| ace_t * | concat_aces (ace_t *aces1, int ace1count, ace_t *aces2, int ace2count) |
| int | strip_trivial_aces (ace_t **saces, int sacecount) |
| Remove any trivial ACE "in-place". | |
| int | strip_nontrivial_aces (ace_t **saces, int sacecount) |
| Remove non-trivial ACEs "in-place". | |
| int | nfsv4_chmod (char *name, mode_t mode) |
| Change mode of file preserving existing explicit ACEs. | |
| int | posix_chmod (const char *name, mode_t mode) |
| POSIX ACL chmod. | |
| int | posix_fchmod (int fd, mode_t mode) |
| POSIX ACL fchmod. | |
| #define SEARCH_GROUP_OBJ 0x01 |
| #define SEARCH_MASK 0x02 |
| ace_t * concat_aces | ( | ace_t * | aces1, |
| int | ace1count, | ||
| ace_t * | aces2, | ||
| int | ace2count ) |
Concatenate ACEs
| int get_nfsv4_acl | ( | const char * | name, |
| ace_t ** | retAces ) |
Get ACL.
| int nfsv4_chmod | ( | char * | name, |
| mode_t | mode ) |
Change mode of file preserving existing explicit ACEs.
nfsv4_chmod
| int posix_chmod | ( | const char * | name, |
| mode_t | mode ) |
POSIX ACL chmod.
This is a workaround for chmod() on filestystems supporting Posix 1003.1e draft 17 compliant ACLs. For objects with extended ACLs, e.g. objects with an ACL_MASK entry, chmod() manipulates ACL_MASK instead of ACL_GROUP_OBJ. As OS X isn't aware of this behavior calling FPSetFileDirParms may lead to unpredictable results. For more information see section 23.1.2 of Posix 1003.1e draft 17.
| int posix_fchmod | ( | int | fd, |
| mode_t | mode ) |
POSIX ACL fchmod.
| int strip_nontrivial_aces | ( | ace_t ** | saces, |
| int | sacecount ) |
Remove non-trivial ACEs "in-place".
| int strip_trivial_aces | ( | ace_t ** | saces, |
| int | sacecount ) |
Remove any trivial ACE "in-place".