diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-11-26 12:10:55 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-11-26 03:08:21 +0100 |
commit | 5e8cb67605367ffd9dd2a8624df90f2ca5e77fc4 (patch) | |
tree | 594c5bb8443243457c9f50d0ebf0b471aa79c42b /source4/scripting | |
parent | cfa7510e19b5e593af8c4da6e89b6a99adfe8b2b (diff) | |
download | samba-5e8cb67605367ffd9dd2a8624df90f2ca5e77fc4.tar.gz samba-5e8cb67605367ffd9dd2a8624df90f2ca5e77fc4.tar.bz2 samba-5e8cb67605367ffd9dd2a8624df90f2ca5e77fc4.zip |
s4-provision: fixed eadb automatic and manual setting in provision
we should not set posix:eadb in lp in the acl native test code
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/scripting')
-rw-r--r-- | source4/scripting/python/samba/ntacls.py | 31 | ||||
-rw-r--r-- | source4/scripting/python/samba/provision.py | 2 |
2 files changed, 16 insertions, 17 deletions
diff --git a/source4/scripting/python/samba/ntacls.py b/source4/scripting/python/samba/ntacls.py index 9bf5cfe3d7..4f1c922810 100644 --- a/source4/scripting/python/samba/ntacls.py +++ b/source4/scripting/python/samba/ntacls.py @@ -28,23 +28,23 @@ class XattrBackendError(Exception): def checkset_backend(lp, backend, eadbfile): - # if posix:eadb is set, then force the backend - if backend is not None: - if backend == "native": - lp.set("posix:eadb", "") - elif backend == "tdb": - if eadbfile is not None: - lp.set("posix:eadb", eadbfile) - else: - os.path.abspath(os.path.join(lp.get("private dir"), "eadb.tdb")) + '''return the path to the eadb, or None''' + if backend is None: + return lp.get("posix:eadb") + elif backend == "native": + return None + elif backend == "tdb": + if eadbfile is not None: + return eadbfile else: - raise XattrBackendError("Invalid xattr backend choice %s"%backend) + return os.path.abspath(os.path.join(lp.get("private dir"), "eadb.tdb")) + else: + raise XattrBackendError("Invalid xattr backend choice %s"%backend) def getntacl(lp, file, backend=None, eadbfile=None): - checkset_backend(lp, backend, eadbfile) - eadbname = lp.get("posix:eadb") - if eadbname is not None and eadbname != "": + eadbname = checkset_backend(lp, backend, eadbfile) + if eadbname is not None: try: attribute = samba.xattr_tdb.wrap_getxattr(eadbname, file, xattr.XATTR_NTACL_NAME) @@ -62,14 +62,13 @@ def getntacl(lp, file, backend=None, eadbfile=None): def setntacl(lp, file, sddl, domsid, backend=None, eadbfile=None): - checkset_backend(lp, backend, eadbfile) + eadbname = checkset_backend(lp, backend, eadbfile) ntacl = xattr.NTACL() ntacl.version = 1 sid = security.dom_sid(domsid) sd = security.descriptor.from_sddl(sddl, sid) ntacl.info = sd - eadbname = lp.get("posix:eadb") - if eadbname is not None and eadbname != "": + if eadbname is not None: try: samba.xattr_tdb.wrap_setxattr(eadbname, file, xattr.XATTR_NTACL_NAME, ndr_pack(ntacl)) diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index b6c39cbb66..b5f37b555a 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -590,7 +590,7 @@ def make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole, #Load non-existant file if os.path.exists(smbconf): lp.load(smbconf) - if eadb: + if eadb and not lp.get("posix:eadb"): if targetdir is not None: privdir = os.path.join(targetdir, "private") else: |