On Tue, 24 Oct 2000, Paulo Antonio Figueiredo do Carmo wrote:

> Valeu Alex!!!
> 
> Pode me enviar o pgm em PVT. Fico muito grato.
> Sds.
> 
> Antonio.

Desculpe a demora, vou mandar o codigo fonte, voce o quem quiser altera
conforme o desejado, o programa do jeito que esta eh compilado com a
seguinte linha de comando:

$ gcc -Wall -O prog.c -o prog -lcrypt

embora o programa esteja preparado para aceitar paramatros na linha de
comando (int argc, char *argv[]), o utilizem com muita cautela, pois isso
pode gerar um bufferoverflow, e como o programa tem rodar com suid de root
(com o usuario root -> chmod +s prog) voces devem saber o que pode
acontecer.
Se tiver alguma dificuldade em altera-lo para que atenda o seu proposito,
me mande um mail (private) que eu te ajudo.

t+
[]s

segue o programa:

// Checa se a senha do usuario corrente eh valida

#include <stdlib.h>
#include <unistd.h>
#include <crypt.h>
#include <shadow.h>
#include <string.h>
#include <pwd.h>


struct spwd *senhas;

char *verifica, *antiga;
char *nova1, *nova2;

int main(int argc, char *argv[])
{
   senhas = getspnam(getlogin());  // pega uid de que esta executando
   printf("Usuario [%s], Password [%s]\n",senhas->sp_namp,senhas->sp_pwdp);
   antiga = senhas->sp_pwdp;    // atribui a um *char a senha antiga
   verifica = getpass("Senha: ");  // system call do unix
   
   // note que o crypt utiliza a senha antiga como salt
   if (strcmp(crypt(verifica, antiga), antiga) == 0)
   {
      printf("\n *** S E N H A   V A L I D A ***\n");
      printf("Bem vindo [%s]\n",senhas->sp_namp);
   }
   else
   {
      printf("\n *** S E N H A   I N C O R R E T A ***\n");
   }
   return(0);
} // fim do programa

------------------------------------------------------
[aechiara@pinga]~$ rm -rf *
^C^C^C
[aechiara@pinga]~$ ls -l
total 0
[aechiara@pinga]~$ Ahhhh ........
bash: Ahhhh: command not found
[aechiara@pinga]~$ logout
Connection to pinga closed.

/"\
\ /
 X   ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
/ \  CAMPANHA DA FITA ASCII - CONTRA MAIL EM HTML

      Linux ... a nice place to live
*******************************************
* Alex Eduardo Chiaranda                  *
* mail: [EMAIL PROTECTED]                   *
*       [EMAIL PROTECTED]             *
*       [EMAIL PROTECTED]        *
* Pagina => http://www.eep.br/~aechiara   *
* ICQ => UIN 13070511                     *
* 4o Ano de Ciencia da Computacao         * 
* Escola de Engenharia de Piracicaba      *
* Piracicaba - SP                         *
*******************************************

http://www.mrweb.com.br/perl/
=======================================
>>No site da lista, voce tera tudo sobre PERL,
>>LINUX, PHP, ASP e informacoes, cadastramento
>>e descadastramento da Lista.
=======================================

Responder a