1#!/usr/bin/python 2# 3# Enables an user account on a Samba4 server 4# Copyright Jelmer Vernooij 2008 5# 6# Based on the original in EJS: 7# Copyright Andrew Tridgell 2005 8# 9# This program is free software; you can redistribute it and/or modify 10# it under the terms of the GNU General Public License as published by 11# the Free Software Foundation; either version 3 of the License, or 12# (at your option) any later version. 13# 14# This program is distributed in the hope that it will be useful, 15# but WITHOUT ANY WARRANTY; without even the implied warranty of 16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17# GNU General Public License for more details. 18# 19# You should have received a copy of the GNU General Public License 20# along with this program. If not, see <http://www.gnu.org/licenses/>. 21# 22 23import sys 24 25sys.path.insert(0, "bin/python") 26 27import samba.getopt as options 28import optparse 29 30from samba.auth import system_session 31from samba.samdb import SamDB 32 33parser = optparse.OptionParser("enableaccount [username] [options]") 34sambaopts = options.SambaOptions(parser) 35parser.add_option_group(sambaopts) 36parser.add_option_group(options.VersionOptions(parser)) 37credopts = options.CredentialsOptions(parser) 38parser.add_option_group(credopts) 39parser.add_option("-H", help="LDB URL for database or target server", type=str) 40parser.add_option("--filter", help="LDAP Filter to set password on", type=str) 41 42opts, args = parser.parse_args() 43 44filter = opts.filter 45 46if (len(args) == 0) and (filter is None): 47 print "Either the username or '--filter' must be specified!" 48 parser.print_usage() 49 sys.exit(1) 50 51if filter is None: 52 username = args[0] 53 filter = "(&(objectClass=user)(sAMAccountName=%s))" % (username) 54 55lp = sambaopts.get_loadparm() 56creds = credopts.get_credentials(lp) 57 58if opts.H is not None: 59 url = opts.H 60else: 61 url = lp.get("sam database") 62 63samdb = SamDB(url=url, session_info=system_session(), credentials=creds, lp=lp) 64 65samdb.enable_account(filter) 66