#!/usr/bin/perl -nl

setpwent;

$inform_type = shift || 'ekran';

while ( ($u,$c) = getpwent ) {
    informuj( $u, $_ ) if crypt($_,$c) eq $c;
}

sub informuj {
    my ( $u, $p ) = @_;

    if ( $typ_informacji eq 'ekran' ) {
        # 1: tylko wyswietlenie na stdout
        print "$u $p\n";
    } elsif ( $typ_informacji eq 'email_do_uzytkownika' ) {
        # 2: przekazanie informacji do uzytkownika
        open OWNER, "|mail $u";
        print OWNER "Twoje haslo bardzo latwo odgadnac.",
            "  Prosze je zmienic.\n";
        close OWNER;
    } elsif ( $typ_informacji eq 'email_do_admina' ) {
        # 3: przekazanie do administratora informacji o wszystkich zlych haslach
        $format = "%20s %s\n";
        unless ( $utworzono_emaila ) {
            open SECURITY, "|mail password-security";
            printf SECURITY $format, 'Uzytkownik', 'Haslo';
            printf SECURITY $format, '----------', '-----';
            ++$utworzono_emaila;
        }
        printf SECURITY $format, $u, $p;
    } # Mozliwe dodanie innych metod postepowania.
}

sub END {
    close SECURITY if $utworzono_emaila;
}

