1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

vfs_posixacl: catch ACL_EVERYONE on FreeBSD

Using POSIX ACL API on FreeBSD may return NFSv4 style tag type
ACL_EVERYONE. Catch the error and issue a helpful log message telling
users to enable zfsacl VFS module.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sun Oct 12 00:22:19 CEST 2014 on sn-devel-104
This commit is contained in:
Ralph Boehme 2014-10-10 13:53:56 +02:00 committed by Jeremy Allison
parent 8686da231d
commit f593835e54
2 changed files with 6 additions and 0 deletions

View File

@ -167,6 +167,11 @@ static bool smb_ace_to_internal(acl_entry_t posix_ace,
case ACL_MASK:
ace->a_type = SMB_ACL_MASK;
break;
#ifdef HAVE_ACL_EVERYONE
case ACL_EVERYONE:
DEBUG(1, ("ACL tag type ACL_EVERYONE. FreeBSD with ZFS? Use 'vfs objects = zfsacl'\n"));
return false;
#endif
default:
DEBUG(0, ("unknown tag type %d\n", (unsigned int)tag));
return False;

View File

@ -476,6 +476,7 @@ return acl_get_perm_np(permset_d, perm);
headers='sys/types.h sys/acl.h', link=True,
msg="Checking whether acl_get_perm_np() is available")
default_static_modules.extend(TO_LIST('vfs_posixacl'))
conf.CHECK_VARIABLE('ACL_EVERYONE', headers='sys/acl.h')
elif conf.CHECK_FUNCS_IN(['facl'], 'sec'):
Logs.info('Using solaris or UnixWare ACLs')
conf.DEFINE('HAVE_SOLARIS_UNIXWARE_ACLS',1)