[FUGSPBR] Troca de senha

Clebson Derivan clebson em brfree.com.br
Qui Jun 28 22:30:17 BRT 2001


olha ja tinha enviado pra lista. em todo caso tai denovo.

 []'s
Clebson Derivan

> ----- Original Message -----
> From: "Roberto Salgado - LDP-Br" <roberto-ldp-br em linuxbr.com.br>
> To: <fugspbr em fugspbr.org>
> Sent: Thursday, June 28, 2001 9:20 PM
> Subject: Re: [FUGSPBR] Troca de senha
>
>
> > Oi Clebson tudo bom ?
> > vc poderia mandar esse cgi pra mim ?
> > ficaria te devendo um favorzaum ...
> > :  )
> > ----- Original Message -----
> > From: "Clebson Derivan" <clebson em brfree.com.br>
> > To: <fugspbr em fugspbr.org>
> > Sent: Tuesday, June 26, 2001 8:16 PM
> > Subject: Re: [FUGSPBR] Troca de senha
> >
> >
> > tenho um pronto em perl. vc s vai ter que alterar pq ta com logo da
> > empresa. interessa ??
> >
> > ----- Original Message -----
> > From: "Thiago Pinto Damas" <thiago em vetorialnet.com.br>
> > To: <fugspbr em fugspbr.org>
> > Sent: Tuesday, June 26, 2001 8:04 PM
> > Subject: [FUGSPBR] Troca de senha
> >
> >
> > > Alguem sabe algum lugar aonda ja tenha pronto um cgi para troca de
> > > senha no free?
> > > []'s
> > >
> > > Thiago Pinto Damas - SysAdmin
> > > ----------------------------------------------------------------
> > > http://www.vetorialnet.com.br http://www.ecomp.furg.br
> > > thiago em vetorialnet.com.br thiago em ecomp.furg.br
> > >
> > > ----
> > > Para sair da lista envie um e-mail para majordomo em fugspbr.org
> > > com as palavras "unsubscribe fugspbr" no corpo da mensagem.
> > >
> >
> > ----
> > Para sair da lista envie um e-mail para majordomo em fugspbr.org
> > com as palavras "unsubscribe fugspbr" no corpo da mensagem.
> >
> >
> > ----
> > Para sair da lista envie um e-mail para majordomo em fugspbr.org
> > com as palavras "unsubscribe fugspbr" no corpo da mensagem.
> >
>


----------------------------------------------------------------------------
----


> #!/usr/bin/perl
> # Troca de senha via web.
> # by Clebson Derivan clebson em grupora.com,br
>
>
> $ENV{PATH} = '/bin:/usr/bin';
> $ENV{IFS} = '';
>
> $| = 1;
>
> use CGI qw/:standard :html3/;
>
> print header,
>         start_html(-title=>'Grupo R.A. - Senha de
e-mail',-bgColor=>'#cccccc'),
>
> import_names('Q');
>
> TRY: {
>     last TRY unless $Q::user;
>     my ($rv,$msg) = valida_campos();
>     do_error($msg),last TRY unless $rv;
>
>
>     ($rv,$msg) = troca_senha($Q::user,$Q::old,$Q::new1);
>     do_error($msg),last TRY unless $rv;
>
>
>     print $msg;
>     $OK++;
> }
>
>
> cria_tela() unless $OK;
> end_html;
>
>
> sub valida_campos {
>     return (undef,'Preencha o campo user name.') unless $Q::user;
>     return (undef,'Preencha o campo senha atual.') unless $Q::old;
>     return (undef,'Prencha os campos para nova senha.') unless $Q::new1 &&
$Q::new2;
>     return (undef,"A nova senha e a senha confirmada não coincidem.
digiti-as novamente.") unless $Q::new1 eq $Q::new2;
> #    return (undef,"User name suspeito $Q::user.") unless
$Q::user=~/^\w{3,8}$/;
>     return (undef,'Senha atual suspeita.') unless length($Q::old) < 30;
>     return (undef,'Nova senha suspeita.') unless length($Q::new1) < 30;
>     my $uid = (getpwnam($Q::user))[2];
>     return (undef,"Usuario desconhecido $Q::user.") if $uid eq '';
>     return (undef,"Impossivel mudar a senha do root via web.") if $uid ==
0;
>     return 1;
> }
>
>
> sub troca_senha ($$$) {
>     use Expect;
>
>     $Expect::Log_Stdout = 0;
> #    $Expect::Debug = 1;
> #    $Expect::Exp_Internal = 1;
>
>     my $TIMEOUT = 2;
>     my $DELAY = 1;
>     my $PASSWD = "/usr/bin/passwd";
>     my $SU = '/bin/su';
>
>     my($user,$old,$new) = @_;
>
> #   essa linha muda de acordo com o sitemas operacional
>     my $passwd = Expect->spawn("$SU $user -c \"$PASSWD $user\"") || return
(undef,"Impossivel executar $SU $user -c $PASSWD");
>
>     my $rv = $passwd->expect($TIMEOUT,
>                         "Password:",
>                         "Sorry",
>                         "Unknown id: $user");
>     $rv || return (undef,"Senha atual incorreta.");
>     $rv == 2 && return (undef,"Senha atual incorreta.");
>     $rv == 3 && return (undef,"Usuario $user desconhecido.");
>
>     sleep($DELAY);
>     print $passwd "$old\r";
>
>     $rv = $passwd->expect($TIMEOUT,
> "Changing password for $user\r\n(current) UNIX password:","Sorry");
>     $rv == 2 && return (undef,"Senha atual incorreta.");
>
>     sleep($DELAY);
>     print $passwd "$old\r";
>
>     $rv = $passwd->expect($TIMEOUT, "Enter new UNIX password:", "Sorry.");
>     $rv || return (undef,"interno: 0001, contate o administrador de
rede.");
>     $rv == 2 && return (undef,"Senha atual incorreta.");
>
>     sleep($DELAY);
>     print $passwd "$new\r";
>
>     $rv = $passwd->expect($TIMEOUT, "Retype new UNIX password:");
>     $rv || return (undef,"interno: 0002, contate o administrador de
rede.");
>
>     sleep($DELAY);
>     print $passwd "$new\r";
>
>     $rv = $passwd->expect($TIMEOUT, "passwd: password updated
successfully",
>     "Bad: new and old password are too similar",
>     "Bad: new password is too short",
>     "Bad: new password is too simple");
>
>     $rv || return (undef,"interno: 0003, contate o administrador de
rede.");
>     $rv == 2 && return (undef,"A nova e a senha anterior são muito
parecidas.");
>     $rv == 3 && return (undef,"A nova senha é muito pequena.");
>     $rv == 4 && return (undef,"A nova senha é muito simples.");
>
>     $passwd->hard_close();
>     return (1,"Senha trocada com sucesso para o usuario: $Q::user.");
> }
>
>
> sub cria_tela {
>   print
>
table({-height=>'100%',-width=>'100%',-cellSpacing=>0,-cellPadding=>0,-borde
r=>0,-valign=>'center'},
>     TR({-align=>'center'},
>       td({-aling=>'middle'},
>
table({-border=>3,-width=>'470',-bqColor=>'white',-cellSpacing=>0,-cellPaddi
ng=>0},
>             TR(
>               td({-bgColor=>'white'},
>                 table({-border=>0,-bqColor=>'white',-cellSpacing=>0,-cellP
adding=>5},
>           TR(
>                     td({-align=>'left',-bgColor=>'#11375e',-colSpan=>2},
>     font({-face=>'helvetica,arial',-color=>'white',-size=>'+1'},'Senha de
e-mail')),
>           ),
>           TR(
>     td(img {src=>'/ralogo.gif',width=>180}),
>     td({-vAlign=>'top'},
>       font({-face=>'helvetica,arial', -size=>'1'}, 'Caro Usuário,<br>A
Senha para o e-mail deve ter 8 dígitos<br>Não utilize senhas fáceis, pois
isso pode comprometer sua privacidade. Não divulgue sua senha a
terceiros.'),
>                   table({-border=>0,-bgColor=>'white'},
>         start_form,
> TR(
>   TR(
>                             TR(
>
td({-bqColor=>'white'},font({-face=>'helvetica,arial',-size=>'1'},'Nome
Usuário')),
> td({-bqColor=>'white'},textfield(-name=>'user'))
>       ),
>                             TR(
>
td({-bqColor=>'white'},font({-face=>'helvetica,arial',-size=>'1'},'Senha
atual')),
>         td({-bqColor=>'white'},password_field(-name=>'old'))
>       ),
>                             TR(
>
td({-bqColor=>'white'},font({-face=>'helvetica,arial',-size=>'1'},'Nova
Senha')),
> td({-bqColor=>'white'},password_field(-name=>'new1'))
>       ),
>                             TR(
>
td({-bqColor=>'white'},font({-face=>'helvetica,arial',-size=>'1'},'Confirme
nova senha')),
> td({-bqColor=>'white'},password_field(-name=>'new2'))
>       ),
>             hidden(-name=>'referer',-value=>referer()),
>


















TR(td({-align=>'LEFT',-COLSPAN=>2, -ALIGN=>'RIGHT',-BGCOLOR=>'white'},font({
-face=>'helvetica,arial'}, submit('Trocar')))),
>
>     end_form,
>
>             ),
>           ),
>         ),
>       ),
>   ),
> ),
>       ),
>     ),
>   ),
>        ),
>     ),
>   ),
> }
>
> sub do_error ($) {
>     print "<CENTER><FONT COLOR='red' SIZE='+1' face='helvetica,arial'>";
>     print b('Error: '),shift," A senha não foi modificada.";
>     print "</FONT></CENTER>";
> }
>
>
>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: passwd.cgi
Tipo: application/octet-stream
Tamanho: 5858 bytes
Descrição: não disponível
URL: <http://www.fug.com.br/pipermail/freebsd/attachments/20010628/7c1faaa6/attachment.obj>


Mais detalhes sobre a lista de discussão freebsd