1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

s4-python: More cleanups.

This commit is contained in:
Jelmer Vernooij
2010-04-08 21:01:17 +02:00
parent a35d876537
commit dd4ef4e106
9 changed files with 37 additions and 29 deletions

View File

@ -2,7 +2,6 @@
# -*- coding: utf-8 -*-
# This is unit with tests for LDAP access checks
import getopt
import optparse
import sys
import os
@ -13,9 +12,8 @@ sys.path.append("bin/python")
import samba.getopt as options
from ldb import SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE, LdbError
from ldb import ERR_NO_SUCH_OBJECT, ERR_INVALID_DN_SYNTAX, ERR_UNWILLING_TO_PERFORM
from ldb import ERR_INSUFFICIENT_ACCESS_RIGHTS
from ldb import (
SCOPE_BASE, LdbError, ERR_NO_SUCH_OBJECT, ERR_INSUFFICIENT_ACCESS_RIGHTS)
from samba.ndr import ndr_pack, ndr_unpack
from samba.dcerpc import security

View File

@ -6,8 +6,9 @@ import sys
import os
sys.path.append("bin/python")
sys.path.append("../lib/subunit/python")
sys.path.append("../lib/testtools")
import samba
samba.ensure_external_module("subunit", "subunit")
samba.ensure_external_module("testtools", "testtools")
import samba.getopt as options

View File

@ -86,12 +86,7 @@ def get_credentials(lp):
return
creds = Credentials()
creds.guess(lp)
try:
creds.set_machine_account(lp)
except:
print "Failed to set machine account"
raise
creds.set_machine_account(lp)
(tmp_fd, ccachename) = tempfile.mkstemp()
creds.get_named_ccache(lp, ccachename)
@ -200,7 +195,7 @@ def get_subst_vars():
vars = {}
samdb = SamDB(url=lp.get("sam database"), session_info=system_session(),
lp=lp)
lp=lp)
vars['DNSDOMAIN'] = lp.get('realm').lower()
vars['HOSTNAME'] = lp.get('netbios name').lower() + "." + vars['DNSDOMAIN']

View File

@ -668,6 +668,7 @@ def check_diff_name(newpaths, paths, creds, session, basedn, names, ischema):
try:
dump_denied_change(dn,att,messageEltFlagToString(msgElt.flags()),current[0][att],reference[0][att])
except:
# FIXME: Should catch an explicit exception here
dump_denied_change(dn,att,messageEltFlagToString(msgElt.flags()),current[0][att],None)
delta.remove(att)
delta.dn = dn

View File

@ -63,7 +63,8 @@ class cmd_acl_set(Command):
creds = credopts.get_credentials(lp)
creds.set_kerberos_state(DONT_USE_KERBEROS)
try:
ldb = Ldb(path, session_info=system_session(), credentials=creds,lp=lp)
ldb = Ldb(path, session_info=system_session(), credentials=creds,
lp=lp)
except:
# XXX: Should catch a particular exception type
raise CommandError("Unable to read domain SID from configuration files")

View File

@ -41,29 +41,37 @@ def checkset_backend(lp,backend,eadbfile):
def getntacl(lp, file, backend=None, eadbfile=None):
checkset_backend(lp, backend, eadbfile)
eadbname = lp.get("posix:eadb")
if eadbname != None and eadbname != "" :
if eadbname is not None and eadbname != "":
try:
attribute = samba.xattr_tdb.wrap_getxattr(eadbname,file,xattr.XATTR_NTACL_NAME)
attribute = samba.xattr_tdb.wrap_getxattr(eadbname, file,
xattr.XATTR_NTACL_NAME)
except:
# FIXME: Don't catch all exceptions, just those related to opening
# xattrdb
print "Fail to open %s" % eadbname
attribute = samba.xattr_native.wrap_getxattr(file,xattr.XATTR_NTACL_NAME)
attribute = samba.xattr_native.wrap_getxattr(file,
xattr.XATTR_NTACL_NAME)
else:
attribute = samba.xattr_native.wrap_getxattr(file,xattr.XATTR_NTACL_NAME)
attribute = samba.xattr_native.wrap_getxattr(file,
xattr.XATTR_NTACL_NAME)
ntacl = ndr_unpack(xattr.NTACL,attribute)
return ntacl
def setntacl(lp, file, sddl, domsid, backend=None, eadbfile=None):
checkset_backend(lp,backend,eadbfile)
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 != None and eadbname != "":
if eadbname is not None and eadbname != "":
try:
samba.xattr_tdb.wrap_setxattr(eadbname,file,xattr.XATTR_NTACL_NAME,ndr_pack(ntacl))
samba.xattr_tdb.wrap_setxattr(eadbname,
file,xattr.XATTR_NTACL_NAME,ndr_pack(ntacl))
except:
# FIXME: Don't catch all exceptions, just those related to opening
# xattrdb
print "Fail to open %s"%eadbname
samba.xattr_native.wrap_setxattr(file,xattr.XATTR_NTACL_NAME,ndr_pack(ntacl))
else:

View File

@ -269,7 +269,8 @@ def setup_ldb(ldb, ldif_path, subst_vars):
except:
ldb.transaction_cancel()
raise
ldb.transaction_commit()
else:
ldb.transaction_commit()
def provision_paths_from_lp(lp, dnsdomain):
@ -550,12 +551,11 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
message("Setting up sam.ldb rootDSE")
setup_samdb_rootdse(samdb, setup_path, names)
except:
samdb.transaction_cancel()
raise
samdb.transaction_commit()
else:
samdb.transaction_commit()
def secretsdb_self_join(secretsdb, domain,

View File

@ -150,7 +150,8 @@ pwdLastSet: 0
except:
self.transaction_cancel()
raise
self.transaction_commit()
else:
self.transaction_commit()
def setpassword(self, filter, password, force_change_at_next_login=False):
"""Sets the password for a user
@ -188,7 +189,8 @@ userPassword:: %s
except:
self.transaction_cancel()
raise
self.transaction_commit()
else:
self.transaction_commit()
def setexpiry(self, filter, expiry_seconds, no_expiry_req=False):
"""Sets the account expiry for a user
@ -227,7 +229,8 @@ accountExpires: %u
except:
self.transaction_cancel()
raise
self.transaction_commit()
else:
self.transaction_commit()
def set_domain_sid(self, sid):
"""Change the domain SID used by this LDB.

View File

@ -219,7 +219,8 @@ elif opts.use_xattrs == "auto":
"O:S-1-5-32G:S-1-5-32", "S-1-5-32", "native")
eadb = False
except:
if lp.get("posix:eadb") == None:
# XXX: Should catch a specific exception here
if lp.get("posix:eadb") is None:
message("Notice: you are not root or your system do not support xattr, tdb backend for attributes has been selected")
message(" if you intend to use this provision in production you'd better rerun the script as root on a system supporting xattr")
file.close()