mirror of
https://github.com/samba-team/samba.git
synced 2025-01-14 19:24:43 +03:00
5196640c2c
the password option in newuser. Move the local options above the global options to fix. (This used to be commit 2adcd4ff4ec1ef867b91274d994c39e7c0fdaad2)
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",
|
|
'username=s',
|
|
'unixname=s',
|
|
'password=s',
|
|
"POPT_COMMON_SAMBA",
|
|
"POPT_COMMON_VERSION",
|
|
"POPT_COMMON_CREDENTIALS",
|
|
'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;
|