summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2009-11-11 18:35:18 -0800
committerJeremy Allison <jra@samba.org>2009-11-11 18:35:18 -0800
commita8769e667514f83a45ee3e825d21a351987d0210 (patch)
tree41884f33c324380f3637420eb1ff5bf8151406d0
parent8995d3d813978a00b50f33943c60784ddfe308bf (diff)
downloadsamba-a8769e667514f83a45ee3e825d21a351987d0210.tar.gz
samba-a8769e667514f83a45ee3e825d21a351987d0210.tar.bz2
samba-a8769e667514f83a45ee3e825d21a351987d0210.zip
Second part of bugfix for 6865 - acl_xattr module: Has dependency that inherit acls = yes or xattrs are removed.
We also need dos filemode = true set as well. Jeremy.
-rw-r--r--docs-xml/smbdotconf/misc/dosfilemode.xml8
-rw-r--r--source3/include/proto.h1
-rw-r--r--source3/modules/vfs_acl_tdb.c6
-rw-r--r--source3/modules/vfs_acl_xattr.c8
-rw-r--r--source3/param/loadparm.c10
5 files changed, 17 insertions, 16 deletions
diff --git a/docs-xml/smbdotconf/misc/dosfilemode.xml b/docs-xml/smbdotconf/misc/dosfilemode.xml
index e67ccd935a..cf53192733 100644
--- a/docs-xml/smbdotconf/misc/dosfilemode.xml
+++ b/docs-xml/smbdotconf/misc/dosfilemode.xml
@@ -12,7 +12,13 @@
(including ACL) on it. Note that a user belonging to the group
owning the file will not be allowed to change permissions if
the group is only granted read access. Ownership of the
- file/directory may also be changed.</para>
+ file/directory may also be changed.
+
+ Note that using the VFS modules acl_xattr or acl_tdb which store native
+ Windows as meta-data will automatically turn this option on for any
+ share for which they are loaded, as they require this option to emulate
+ Windows ACLs correctly.
+ </para>
</description>
<value type="default">no</value>
</samba:parameter>
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 09933405ee..2dc0c83e02 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4374,7 +4374,6 @@ void lp_set_posix_default_cifsx_readwrite_locktype(enum brl_flavour val);
int lp_min_receive_file_size(void);
char* lp_perfcount_module(void);
void lp_set_passdb_backend(const char *backend);
-bool set_inherit_acls(int i);
/* The following definitions come from param/util.c */
diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c
index 3d06e520e8..db3881e1e7 100644
--- a/source3/modules/vfs_acl_tdb.c
+++ b/source3/modules/vfs_acl_tdb.c
@@ -384,9 +384,11 @@ static int connect_acl_tdb(struct vfs_handle_struct *handle,
/* Ensure we have "inherit acls = yes" if we're
* using this module. */
- DEBUG(2,("connect_acl_tdb: setting 'inherit acls = true' for service %s\n",
+ DEBUG(2,("connect_acl_tdb: setting 'inherit acls = true' "
+ "and 'dos filemode = true' for service %s\n",
service ));
- set_inherit_acls(SNUM(handle->conn));
+ lp_do_parameter(SNUM(handle->conn), "inherit acls", "true");
+ lp_do_parameter(SNUM(handle->conn), "dos filemode", "true");
return 0;
}
diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c
index 11ca8902c0..962d1b7b09 100644
--- a/source3/modules/vfs_acl_xattr.c
+++ b/source3/modules/vfs_acl_xattr.c
@@ -214,9 +214,13 @@ static int connect_acl_xattr(struct vfs_handle_struct *handle,
{
/* Ensure we have "inherit acls = yes" if we're
* using this module. */
- DEBUG(2,("connect_acl_xattr: setting 'inherit acls = true' for service %s\n",
+ DEBUG(2,("connect_acl_xattr: setting 'inherit acls = true' "
+ "and 'dos filemode = true' for service %s\n",
service ));
- set_inherit_acls(SNUM(handle->conn));
+
+ lp_do_parameter(SNUM(handle->conn), "inherit acls", "true");
+ lp_do_parameter(SNUM(handle->conn), "dos filemode", "true");
+
return 0;
}
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 9a0f834f99..c62deb5eda 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -9843,13 +9843,3 @@ void lp_set_passdb_backend(const char *backend)
{
string_set(&Globals.szPassdbBackend, backend);
}
-
-bool set_inherit_acls(int i)
-{
- if (!LP_SNUM_OK(i)) {
- return false;
- }
- ServicePtrs[(i)]->bInheritACLS = true;
-
- return true;
-}