lpt: new command account add to import account information from passwd like file. Closes #22244
This commit is contained in:
parent
e9ea5fc3a5
commit
6e70dc24ff
48
utils/lpt
48
utils/lpt
@ -73,6 +73,7 @@ my %cmds =
|
|||||||
|
|
||||||
my %cmds_account =
|
my %cmds_account =
|
||||||
(
|
(
|
||||||
|
"add" => \&cmd_account_add,
|
||||||
"alias" => \&cmd_account_alias,
|
"alias" => \&cmd_account_alias,
|
||||||
"close" => \&cmd_account_close,
|
"close" => \&cmd_account_close,
|
||||||
"cn" => \&cmd_account_cn,
|
"cn" => \&cmd_account_cn,
|
||||||
@ -250,6 +251,45 @@ sub cmd_account_cn($@)
|
|||||||
return cmd_account_vieworchange('cn', 'name', @_);
|
return cmd_account_vieworchange('cn', 'name', @_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub cmd_account_add($@)
|
||||||
|
{
|
||||||
|
my $login = shift;
|
||||||
|
my $passwd_path = shift // "./passwd";
|
||||||
|
|
||||||
|
if (! -f $passwd_path)
|
||||||
|
{
|
||||||
|
log(USAGE, "lpt account <login> add [./passwd] [nopass|passgen|password]");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
open my $fh, "<", $passwd_path;
|
||||||
|
my @passwd_cnt = <$fh>;
|
||||||
|
close($fh);
|
||||||
|
|
||||||
|
for my $line (grep { /^$login:x/ } @passwd_cnt)
|
||||||
|
{
|
||||||
|
if ($line =~ /^$login:x:([0-9]+):([0-9]+):([^ :]+) ?([^:]*):/)
|
||||||
|
{
|
||||||
|
my $uid = $1;
|
||||||
|
my $gid = $2;
|
||||||
|
my $firstname = ucfirst $3;
|
||||||
|
my $lastname = ucfirst $4;
|
||||||
|
|
||||||
|
if (! $noconfirm)
|
||||||
|
{
|
||||||
|
say "Add user: ", YELLOW, BOLD, "$login", RESET, ":\n\tFirstname: ", BOLD, $firstname, RESET, "\n\tLastname: ", BOLD, $lastname, RESET, "\n\tUID:\t", BOLD, $uid, RESET, "\n\tGroup:\t", BOLD, $gid, RESET;
|
||||||
|
|
||||||
|
print "Would you like to add this user? [", GREEN, "y", RESET, "/", RED, "N", RESET, "] ";
|
||||||
|
my $go = <STDIN>;
|
||||||
|
chomp $go;
|
||||||
|
next if ($go ne "y" and $go ne "yes");
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd_account_create($login, $gid, $uid, $firstname, $lastname, @_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub cmd_account_create($@)
|
sub cmd_account_create($@)
|
||||||
{
|
{
|
||||||
my $login = shift;
|
my $login = shift;
|
||||||
@ -299,7 +339,7 @@ sub cmd_account_create($@)
|
|||||||
if ($mesg->code == 0)
|
if ($mesg->code == 0)
|
||||||
{
|
{
|
||||||
log(INFO, "Account added: $login");
|
log(INFO, "Account added: $login");
|
||||||
my $pass = shift;
|
my $pass = shift // "nopass";
|
||||||
return cmd_account($login, $pass, @_) if ($pass ne "nopass");
|
return cmd_account($login, $pass, @_) if ($pass ne "nopass");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1950,6 +1990,12 @@ B<lpt account> <login> [I<view> [I<attribute> [I<attribute> [...]]]]
|
|||||||
|
|
||||||
If <attribute> are given, display only those attributes.
|
If <attribute> are given, display only those attributes.
|
||||||
|
|
||||||
|
B<lpt account> <login> I<add> [./passwd] [nopass|password|passgen]
|
||||||
|
|
||||||
|
This is used to create a new Epita account, base for intra and/or lab account.
|
||||||
|
|
||||||
|
This will use the passwd file given in argument to import information about the login.
|
||||||
|
|
||||||
B<lpt account> <login> I<create> <promo> <uid> <Prenom> <Nom> [nopass|password|passgen]
|
B<lpt account> <login> I<create> <promo> <uid> <Prenom> <Nom> [nopass|password|passgen]
|
||||||
|
|
||||||
This is used to create a new Epita account, base for intra and/or lab account.
|
This is used to create a new Epita account, base for intra and/or lab account.
|
||||||
|
Reference in New Issue
Block a user