1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source4/setup/newuser
2007-10-10 13:29:37 -05:00

74 lines
1.4 KiB
Plaintext
Executable File

#!/bin/sh
exec smbscript "$0" ${1+"$@"}
/*
add a new user to a Samba4 server
Copyright Andrew Tridgell 2005
Released under the GNU GPL v2 or later
*/
options = new Object();
ok = GetOptions(ARGV, options,
"POPT_AUTOHELP",
"POPT_COMMON_SAMBA",
"POPT_COMMON_VERSION",
'username=s',
'unixname=s',
'password=s',
'quiet');
if (ok == false) {
println("Failed to parse options: " + options.ERROR);
return -1;
}
libinclude("base.js");
libinclude("provision.js");
/*
print a message if quiet is not set
*/
function message()
{
if (options["quiet"] == undefined) {
print(vsprintf(arguments));
}
}
/*
show some help
*/
function ShowHelp()
{
print("
Samba4 newuser
newuser [options]
--username USERNAME choose new username
--unixname USERNAME choose unix name of new user
--password PASSWORD set password
You must provide at least a username
");
exit(1);
}
if (options['username'] == undefined) {
ShowHelp();
}
if (options['password'] == undefined) {
options.password = randpass(12);
printf("chose random password %s\n", options.password);
}
if (options['unixname'] == undefined) {
options.unixname = options.username;
}
if (getpwnam(options.unixname) == undefined) {
printf("ERROR: Unix user '%s' does not exist\n", options.unixname);
exit(1);
}
newuser(options.username, options.unixname, options.password, message);
return 0;