source: LATMOS-Accounts/bin/la-passwd @ 591

Last change on this file since 591 was 584, checked in by nanardon, 15 years ago
  • add function to check password over cracklib
  • Property svn:executable set to *
File size: 1.1 KB
RevLine 
[189]1#!/usr/bin/perl
2
3use strict;
4use warnings;
5use LATMOS::Accounts;
6use Getopt::Long;
7use Pod::Usage;
[312]8use Term::ReadKey;
[189]9
[312]10=head1 NAME
11
12    la-passwd - set user password
13
14=head1 SYNOPSIS
15
16    la-passwd [options] userid
17
[584]18=head1 OPTIONS
19
20=over 4
21
22=item -t --test
23
24Don't change password but check it validity using CrackLib.
25
26=back
27
[312]28=cut
29
[189]30GetOptions(
31    'c|config=s' => \my $config,
32    'b|base=s'   => \my $base,
[584]33    't|test'     => \my $test,
[189]34    'help'       => sub { pod2usage(0) },
35) or pod2usage();
36
37my $otype = 'user';
38
[457]39my $LA = LATMOS::Accounts->new($config, noacl => 1);
[189]40my $labase = $base ? $LA->base($base) : $LA->default_base;
41$labase && $labase->load or die "Cannot load base";
42
43my $obj = $labase->get_object($otype, $ARGV[0]) or do {
44    die "Object $otype $ARGV[0] not found\n";
45};
[312]46
47ReadMode('noecho');
48print "Enter password: ";
49my $password = ReadLine(0);
50ReadMode 0;
51print "\n";
52
[584]53print $obj->check_password($password) . "\n";
54
55exit(0)  if($test);
56
[312]57if ($obj->set_password($password)) {
[207]58    print "Password succefully changed\n";
[412]59    $labase->commit;
[207]60    exit 0;
61} else {
62    warn "Error when trying to change password\n";
63    exit 1;
64}
Note: See TracBrowser for help on using the repository browser.