mirror of
https://github.com/samba-team/samba.git
synced 2025-01-06 13:18:07 +03:00
423227d7ca
ACL patch from http://acl.bestbits.at/.
configure support needs more work (just assumes correct headers at
the moment). ACL writing needs adding.
Jeremy.
(This used to be commit 6ae63e502e
)
96 lines
2.7 KiB
C
96 lines
2.7 KiB
C
/*
|
|
Unix SMB/Netbios implementation.
|
|
Version 2.2.x
|
|
Portable SMB ACL interface
|
|
Copyright (C) Jeremy Allison 2000
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#ifndef _SMB_ACLS_H
|
|
#define _SMB_ACLS_H
|
|
|
|
#include "includes.h"
|
|
|
|
#if defined(HAVE_POSIX_ACLS)
|
|
|
|
/* This is an identity mapping (just remove the SMB_). */
|
|
|
|
#define SMB_ACL_TAG_T acl_tag_t
|
|
#define SMB_ACL_TYPE_T acl_type_t
|
|
#define SMB_ACL_PERMSET_T acl_permset_t
|
|
#define SMB_ACL_PERM_T acl_perm_t
|
|
#define SMB_ACL_READ ACL_READ
|
|
#define SMB_ACL_WRITE ACL_WRITE
|
|
#define SMB_ACL_EXECUTE ACL_EXECUTE
|
|
|
|
/* Types of ACLs. */
|
|
#define SMB_ACL_USER ACL_USER
|
|
#define SMB_ACL_USER_OBJ ACL_USER_OBJ
|
|
#define SMB_ACL_GROUP ACL_GROUP
|
|
#define SMB_ACL_GROUP_OBJ ACL_GROUP_OBJ
|
|
#define SMB_ACL_OTHER ACL_OTHER
|
|
#define SMB_ACL_MASK ACL_MASK
|
|
|
|
#define SMB_ACL_T acl_t
|
|
|
|
#define SMB_ACL_ENTRY_T acl_entry_t
|
|
|
|
#define SMB_ACL_FIRST_ENTRY ACL_FIRST_ENTRY
|
|
#define SMB_ACL_NEXT_ENTRY ACL_NEXT_ENTRY
|
|
|
|
#define SMB_ACL_TYPE_ACCESS ACL_TYPE_ACCESS
|
|
#define SMB_ACL_TYPE_DEFAULT ACL_TYPE_DEFAULT
|
|
|
|
#elif defined(HAVE_SOLARIS_ACLS)
|
|
|
|
#elif defined(HAVE_IRIX_ACLS)
|
|
|
|
#else /* No ACLs. */
|
|
|
|
/* No ACLS - fake it. */
|
|
#define SMB_ACL_TAG_T int
|
|
#define SMB_ACL_TYPE_T int
|
|
#define SMB_ACL_PERMSET_T mode_t
|
|
#define SMB_ACL_PERM_T mode_t
|
|
#define SMB_ACL_READ S_IRUSR
|
|
#define SMB_ACL_WRITE S_IWUSR
|
|
#define SMB_ACL_EXECUTE S_IXUSR
|
|
|
|
/* Types of ACLs. */
|
|
#define SMB_ACL_USER 0
|
|
#define SMB_ACL_USER_OBJ 1
|
|
#define SMB_ACL_GROUP 2
|
|
#define SMB_ACL_GROUP_OBJ 3
|
|
#define SMB_ACL_OTHER 4
|
|
#define SMB_ACL_MASK 5
|
|
|
|
typedef struct SMB_ACL_T {
|
|
int dummy;
|
|
} *SMB_ACL_T;
|
|
|
|
typedef struct SMB_ACL_ENTRY_T {
|
|
int dummy;
|
|
} *SMB_ACL_ENTRY_T;
|
|
|
|
#define SMB_ACL_FIRST_ENTRY 0
|
|
#define SMB_ACL_NEXT_ENTRY 1
|
|
|
|
#define SMB_ACL_TYPE_ACCESS 0
|
|
#define SMB_ACL_TYPE_DEFAULT 1
|
|
|
|
#endif /* No ACLs. */
|
|
#endif /* _SMB_ACLS_H */
|