3 # add a new user to a Samba4 server
4 # Copyright Andrew Tridgell 2005
5 # Copyright Jelmer Vernooij 2008
6 # Released under the GNU GPL version 3 or later
11 # Find right directory when running from source tree
12 sys.path.insert(0, "bin/python")
14 import samba.getopt as options
18 from getpass import getpass
19 from samba.auth import system_session
20 from samba.samdb import SamDB
22 parser = optparse.OptionParser("setpassword [username] [options]")
23 sambaopts = options.SambaOptions(parser)
24 parser.add_option_group(sambaopts)
25 parser.add_option_group(options.VersionOptions(parser))
26 credopts = options.CredentialsOptions(parser)
27 parser.add_option_group(credopts)
28 parser.add_option("--filter", help="LDAP Filter to set password on", type=str)
29 parser.add_option("--newpassword", help="Set password", type=str)
31 opts, args = parser.parse_args()
34 # print a message if quiet is not set
44 password = opts.newpassword;
46 password = getpass("New Password: ")
53 print "Either username or --filter must be specified"
55 filter = "(&(objectclass=user)(samAccountName=%s))" % (username)
58 lp = sambaopts.get_loadparm()
59 creds = credopts.get_credentials(lp)
61 samdb = SamDB(url=lp.get("sam database"), session_info=system_session(),
62 credentials=creds, lp=lp)
63 samdb.setpassword(filter, password)