summaryrefslogtreecommitdiff
path: root/source4/setup
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2008-02-13 15:06:05 +1100
committerAndrew Tridgell <tridge@samba.org>2008-02-13 15:06:05 +1100
commit3cb87189f93956075979685d1454e4a514cb71a8 (patch)
treed99bfbc0d5b0f9271d9ef6973814048f2223f50b /source4/setup
parent88d2e0522737fb8856fb0f52c2af8a2f56130f19 (diff)
parentd4006e799ac1305092c2d292c9237f58938268a2 (diff)
downloadsamba-3cb87189f93956075979685d1454e4a514cb71a8.tar.gz
samba-3cb87189f93956075979685d1454e4a514cb71a8.tar.bz2
samba-3cb87189f93956075979685d1454e4a514cb71a8.zip
Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-test
(This used to be commit b3793c6562b1a1e8711561f65594ba0676f9282d)
Diffstat (limited to 'source4/setup')
-rwxr-xr-xsource4/setup/newuser.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/source4/setup/newuser.py b/source4/setup/newuser.py
new file mode 100755
index 0000000000..03ae4e5ffb
--- /dev/null
+++ b/source4/setup/newuser.py
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+#
+# add a new user to a Samba4 server
+# Copyright Andrew Tridgell 2005
+# Copyright Jelmer Vernooij 2008
+# Released under the GNU GPL v2 or later
+#
+
+import samba.getopt as options
+import optparse
+import pwd
+import sys
+
+from auth import system_session
+from samba.samdb import SamDB
+
+parser = optparse.OptionParser("newuser [options] <username> [<password>]")
+sambaopts = options.SambaOptions(parser)
+parser.add_option_group(sambaopts)
+parser.add_option_group(options.VersionOptions(parser))
+credopts = options.CredentialsOptions(parser)
+parser.add_option_group(credopts)
+parser.add_option("--quiet", help="Be quiet", action="store_true")
+parser.add_option("--unixname", help="Unix Username", type=str)
+
+opts, args = parser.parse_args()
+
+#
+# print a message if quiet is not set
+#
+def message(text):
+ if not opts.quiet:
+ print text
+
+if len(args) == 0:
+ parser.print_usage()
+ sys.exit(1)
+
+username = args[0]
+if len(args) > 1:
+ password = args[1]
+else:
+ random_init(local)
+ options.password = randpass(12)
+ print "chose random password %s\n" % password
+
+if opts.unixname is None:
+ opts.unixname = username
+
+try:
+ pwd.getpwnam(opts.unixname)
+except KeyError:
+ print "ERROR: Unix user '%s' does not exist" % opts.unixname
+ sys.exit(1)
+
+creds = credopts.get_credentials()
+
+lp = sambaopts.get_loadparm()
+samdb = SamDB(url=lp.get("sam database"), session_info=system_session(),
+ credentials=creds, lp=lp)
+samdb.newuser(username, opts.unixname, password)