#include <sys/types.h>
#include <sys/acl.h>
#define AF_U ACE_FILE_INHERIT_ACE | ACE_DIRECTORY_INHERIT_ACE
#define AF_G ACE_FILE_INHERIT_ACE | ACE_DIRECTORY_INHERIT_ACE |\
ACE_IDENTIFIER_GROUP
ace_t aces_canned[] = {
{
.a_who = -1,
.a_access_mask = ACE_ALL_PERMS,
.a_flags = AF_U | ACE_OWNER,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = -1,
.a_access_mask = ACE_WRITE_PERMS,
.a_flags = AF_G | ACE_GROUP,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = -1,
.a_access_mask = ACE_WRITE_PERMS,
.a_flags = ACE_EVERYONE,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 501,
.a_access_mask = ACE_ALL_PERMS,
.a_flags = AF_U,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 502,
.a_access_mask = ACE_WRITE_PERMS,
.a_flags = AF_G,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 0x80000001,
.a_access_mask = ACE_ALL_PERMS,
.a_flags = AF_U,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 0x80000002,
.a_access_mask = ACE_WRITE_PERMS,
.a_flags = AF_G,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 0x80000003,
.a_access_mask = ACE_READ_PERMS,
.a_flags = AF_G,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 0x80000004,
.a_access_mask = ACE_READ_PERMS,
.a_flags = AF_G,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
},
{
.a_who = 0x80000005,
.a_access_mask = ACE_READ_PERMS,
.a_flags = AF_G,
.a_type = ACE_ACCESS_ALLOWED_ACE_TYPE
}
};
acl_t acl_canned = {
.acl_type = ACE_T,
.acl_cnt = sizeof (aces_canned) / sizeof (aces_canned[0]),
.acl_entry_size = sizeof (ace_t),
.acl_flags = 0,
.acl_aclp = aces_canned
};