mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
27f997e682
Andrew Bartlett
(This used to be commit 42cdad5e3f
)
81 lines
1.5 KiB
Plaintext
Executable File
81 lines
1.5 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 = GetOptions(ARGV,
|
|
"POPT_AUTOHELP",
|
|
"POPT_COMMON_SAMBA",
|
|
"POPT_COMMON_VERSION",
|
|
"POPT_COMMON_CREDENTIALS",
|
|
'username=s',
|
|
'unixname=s',
|
|
'password=s',
|
|
'quiet');
|
|
|
|
if (options == undefined) {
|
|
println("Failed to parse options");
|
|
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) {
|
|
random_init(local);
|
|
options.password = randpass(12);
|
|
printf("chose random password %s\n", options.password);
|
|
}
|
|
if (options['unixname'] == undefined) {
|
|
options.unixname = options.username;
|
|
}
|
|
|
|
var nss = nss_init();
|
|
if (nss.getpwnam(options.unixname) == undefined) {
|
|
printf("ERROR: Unix user '%s' does not exist\n", options.unixname);
|
|
exit(1);
|
|
}
|
|
|
|
var creds = options.get_credentials();
|
|
var system_session = system_session();
|
|
|
|
|
|
newuser(options.username, options.unixname, options.password, message, system_session, creds);
|
|
|
|
return 0;
|