From 8867f886f00054f094d258203d6c3b2ed4415642 Mon Sep 17 00:00:00 2001 From: Alexander Werth Date: Tue, 24 Jul 2012 18:56:38 +0200 Subject: [PATCH 1/3] s3: Add readmode to nfs4 readme. --- source3/modules/README.nfs4acls.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/modules/README.nfs4acls.txt b/source3/modules/README.nfs4acls.txt index 58b58fc..26093f6 100644 --- a/source3/modules/README.nfs4acls.txt +++ b/source3/modules/README.nfs4acls.txt @@ -24,6 +24,11 @@ Note2: special mode will have side effect when _only_ chown is performed. Later Use "simple" mode when the share is used mainly by windows users and unix side is not significant. You will loose unix bits in this case. It's strongly advised setting "store dos attributes = yes" in smb.conf. +readmode = [simple|special|specialcreator] +Allows to interpret read ACLs different from writing them. This can be +used to migrate between nfs4:mode modes. +Defaults to the same setting as mode. + chown = [true|false] - true => enable changing owner and group - default. - false => disable support for changing owner or group -- 1.7.9.5 From c75d74f4afd07ddc1402e19ebf954275fd56205d Mon Sep 17 00:00:00 2001 From: Alexander Werth Date: Thu, 26 Jul 2012 16:52:24 +0200 Subject: [PATCH 2/3] s3: Add readmode to smbacl4_get_vfs_params. --- source3/modules/nfs4_acls.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c index bac8fae..81bdfe4 100644 --- a/source3/modules/nfs4_acls.c +++ b/source3/modules/nfs4_acls.c @@ -91,6 +91,9 @@ static int smbacl4_get_vfs_params( params->mode = (enum smbacl4_mode_enum)lp_parm_enum( SNUM(conn), type_name, "mode", enum_smbacl4_modes, e_simple); + params->readmode = (enum smbacl4_mode_enum)lp_parm_enum( + SNUM(conn), type_name, + "readmode", enum_smbacl4_modes, params->mode); params->do_chown = lp_parm_bool(SNUM(conn), type_name, "chown", True); params->acedup = (enum smbacl4_acedup_enum)lp_parm_enum( -- 1.7.9.5 From ad60ba8e691b993eb91bc63dbd4041fbc890252a Mon Sep 17 00:00:00 2001 From: Alexander Werth Date: Thu, 26 Jul 2012 13:29:50 +0200 Subject: [PATCH 3/3] s3: Use new readmode parameter in smb_create_file_nfs4. --- source3/modules/nfs4_acls.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c index 81bdfe4..779182e 100644 --- a/source3/modules/nfs4_acls.c +++ b/source3/modules/nfs4_acls.c @@ -417,7 +417,8 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, } /* Mapping of special entries to creator owner. */ - if (params->mode == e_simple && + if ((params->readmode == e_simple || + params->readmode == e_specialcreator) && ace->flags & SMB_ACE4_ID_SPECIAL && (ace->who.special_id == SMB_ACE4_WHO_OWNER || ace->who.special_id == SMB_ACE4_WHO_GROUP)) { @@ -1120,7 +1121,7 @@ NTSTATUS smb_create_file_nfs4(struct vfs_handle_struct *handle, /* Special behaviours */ if (smbacl4_get_vfs_params(SMBACL4_PARAM_TYPE_NAME, fsp->conn, ¶ms)) return NT_STATUS_NO_MEMORY; - if (params.mode != e_specialcreator) { + if (params.readmode != e_specialcreator) { /* We don't need to adjust the ACLs */ goto out; } -- 1.7.9.5