netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
acls.h File Reference
#include <atalk/uuid.h>
#include "directory.h"

Go to the source code of this file.

Data Structures

struct  darwin_ace_t
struct  darwin_acl_header_t

Macros

#define DARWIN_ACL_FLAGS_PRIVATE   (0xffff)
#define KAUTH_ACL_DEFER_INHERIT   (1<<16)
#define KAUTH_ACL_NO_INHERIT   (1<<17)
#define DARWIN_ACE_FLAGS_KINDMASK   0xf
#define DARWIN_ACE_FLAGS_PERMIT   (1<<0)
#define DARWIN_ACE_FLAGS_DENY   (1<<1)
#define DARWIN_ACE_FLAGS_INHERITED   (1<<4)
#define DARWIN_ACE_FLAGS_FILE_INHERIT   (1<<5)
#define DARWIN_ACE_FLAGS_DIRECTORY_INHERIT   (1<<6)
#define DARWIN_ACE_FLAGS_LIMIT_INHERIT   (1<<7)
#define DARWIN_ACE_FLAGS_ONLY_INHERIT   (1<<8)
#define DARWIN_ACE_INHERIT_CONTROL_FLAGS
#define DARWIN_ACE_READ_DATA   0x00000002
#define DARWIN_ACE_LIST_DIRECTORY   0x00000002
#define DARWIN_ACE_WRITE_DATA   0x00000004
#define DARWIN_ACE_ADD_FILE   0x00000004
#define DARWIN_ACE_EXECUTE   0x00000008
#define DARWIN_ACE_SEARCH   0x00000008
#define DARWIN_ACE_DELETE   0x00000010
#define DARWIN_ACE_APPEND_DATA   0x00000020
#define DARWIN_ACE_ADD_SUBDIRECTORY   0x00000020
#define DARWIN_ACE_DELETE_CHILD   0x00000040
#define DARWIN_ACE_READ_ATTRIBUTES   0x00000080
#define DARWIN_ACE_WRITE_ATTRIBUTES   0x00000100
#define DARWIN_ACE_READ_EXTATTRIBUTES   0x00000200
#define DARWIN_ACE_WRITE_EXTATTRIBUTES   0x00000400
#define DARWIN_ACE_READ_SECURITY   0x00000800
#define DARWIN_ACE_WRITE_SECURITY   0x00001000
#define DARWIN_ACE_TAKE_OWNERSHIP   0x00002000

Enumerations

enum  {
  kFileSec_UUID = (1 << 0) , kFileSec_GRPUUID = (1 << 1) , kFileSec_ACL = (1 << 2) , kFileSec_REMOVEACL = (1 << 3) ,
  kFileSec_Inherit = (1 << 4)
}

Functions

int afp_access (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_getacl (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_setacl (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int acltoownermode (const AFPObj *obj, const struct vol *vol, char *path, struct stat *st, struct maccess *ma)

Macro Definition Documentation

◆ DARWIN_ACE_ADD_FILE

#define DARWIN_ACE_ADD_FILE   0x00000004

◆ DARWIN_ACE_ADD_SUBDIRECTORY

#define DARWIN_ACE_ADD_SUBDIRECTORY   0x00000020

◆ DARWIN_ACE_APPEND_DATA

#define DARWIN_ACE_APPEND_DATA   0x00000020

◆ DARWIN_ACE_DELETE

#define DARWIN_ACE_DELETE   0x00000010

◆ DARWIN_ACE_DELETE_CHILD

#define DARWIN_ACE_DELETE_CHILD   0x00000040

◆ DARWIN_ACE_EXECUTE

#define DARWIN_ACE_EXECUTE   0x00000008

◆ DARWIN_ACE_FLAGS_DENY

#define DARWIN_ACE_FLAGS_DENY   (1<<1)

◆ DARWIN_ACE_FLAGS_DIRECTORY_INHERIT

#define DARWIN_ACE_FLAGS_DIRECTORY_INHERIT   (1<<6)

◆ DARWIN_ACE_FLAGS_FILE_INHERIT

#define DARWIN_ACE_FLAGS_FILE_INHERIT   (1<<5)

◆ DARWIN_ACE_FLAGS_INHERITED

#define DARWIN_ACE_FLAGS_INHERITED   (1<<4)

◆ DARWIN_ACE_FLAGS_KINDMASK

#define DARWIN_ACE_FLAGS_KINDMASK   0xf

◆ DARWIN_ACE_FLAGS_LIMIT_INHERIT

#define DARWIN_ACE_FLAGS_LIMIT_INHERIT   (1<<7)

◆ DARWIN_ACE_FLAGS_ONLY_INHERIT

#define DARWIN_ACE_FLAGS_ONLY_INHERIT   (1<<8)

◆ DARWIN_ACE_FLAGS_PERMIT

#define DARWIN_ACE_FLAGS_PERMIT   (1<<0)

◆ DARWIN_ACE_INHERIT_CONTROL_FLAGS

#define DARWIN_ACE_INHERIT_CONTROL_FLAGS
Value:
#define DARWIN_ACE_FLAGS_LIMIT_INHERIT
Definition acls.h:78
#define DARWIN_ACE_FLAGS_ONLY_INHERIT
Definition acls.h:80
#define DARWIN_ACE_FLAGS_FILE_INHERIT
Definition acls.h:74
#define DARWIN_ACE_FLAGS_DIRECTORY_INHERIT
Definition acls.h:76

◆ DARWIN_ACE_LIST_DIRECTORY

#define DARWIN_ACE_LIST_DIRECTORY   0x00000002

◆ DARWIN_ACE_READ_ATTRIBUTES

#define DARWIN_ACE_READ_ATTRIBUTES   0x00000080

◆ DARWIN_ACE_READ_DATA

#define DARWIN_ACE_READ_DATA   0x00000002

◆ DARWIN_ACE_READ_EXTATTRIBUTES

#define DARWIN_ACE_READ_EXTATTRIBUTES   0x00000200

◆ DARWIN_ACE_READ_SECURITY

#define DARWIN_ACE_READ_SECURITY   0x00000800

◆ DARWIN_ACE_SEARCH

#define DARWIN_ACE_SEARCH   0x00000008

◆ DARWIN_ACE_TAKE_OWNERSHIP

#define DARWIN_ACE_TAKE_OWNERSHIP   0x00002000

◆ DARWIN_ACE_WRITE_ATTRIBUTES

#define DARWIN_ACE_WRITE_ATTRIBUTES   0x00000100

◆ DARWIN_ACE_WRITE_DATA

#define DARWIN_ACE_WRITE_DATA   0x00000004

◆ DARWIN_ACE_WRITE_EXTATTRIBUTES

#define DARWIN_ACE_WRITE_EXTATTRIBUTES   0x00000400

◆ DARWIN_ACE_WRITE_SECURITY

#define DARWIN_ACE_WRITE_SECURITY   0x00001000

◆ DARWIN_ACL_FLAGS_PRIVATE

#define DARWIN_ACL_FLAGS_PRIVATE   (0xffff)

◆ KAUTH_ACL_DEFER_INHERIT

#define KAUTH_ACL_DEFER_INHERIT   (1<<16)

◆ KAUTH_ACL_NO_INHERIT

#define KAUTH_ACL_NO_INHERIT   (1<<17)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kFileSec_UUID 
kFileSec_GRPUUID 
kFileSec_ACL 
kFileSec_REMOVEACL 
kFileSec_Inherit 

Function Documentation

◆ acltoownermode()

int acltoownermode ( const AFPObj * obj,
const struct vol * vol,
char * path,
struct stat * st,
struct maccess * ma )
extern

map ACL to user maccess

This is the magic function that makes ACLs usable by calculating the access granted by ACEs to the logged in user.

◆ afp_access()

int afp_access ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_getacl()

int afp_getacl ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_setacl()

int afp_setacl ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )