no linux vc tem:
/etc/passwd
  marcio:x:622:100:Marcio Falcao:/home/marcio:/bin/false
  pedro:x:623:100:Pedro:/home/pedro:/bin/false

/etc/shadow
  marcio:sVAqoJULDuVCg:12250:0:99999:7:::-1073744440
  pedro:$1$qc6V2chd$6OVHPZRIIr3f1B2jCRGDN.:12208:0:99999:7:::-1073744360


gere com o John the Ripper (/usr/ports/security/john), um arquivo unshadow, 
unificado:

/root/unshadow
  marcio:sVAqoJULDuVCg:622:100:Marcio Falcao:/home/marcio:/bin/false
  pedro:$1$qc6V2chd$6OVHPZRIIr3f1B2jCRGDN.:623:100::/home/requiao:/bin/false

E agora use o codigo abaixo para jogar no sistema freebsd:
#cc -o contas.bin contas.c

/root/contas.c

#include <stdio.h>
#include <errno.h>

int main(int argc, char **argv) {
        FILE *fo, *fd;
        char buffer[1024];
        char cmd[1024];
        int i;
        int j;
        int uid=1002;
        char login[64];
        char pass[64];
        char name[256];

        if (argc < 3) {
                printf("Uso: %s <origem> <destino>\n", argv[0]);
                return -1;
        }
        if ((fo = fopen(argv[1], "r")) == NULL) {
                printf("Nao foi possivel abrir o arquivo de origem [%s]\n", 
strerror(errno));
                return -2;
        }
        if ((fd = fopen(argv[2], "a")) == NULL) {
                printf("Nao foi possivel abrir o arquivo de destino [%s]\n", 
strerror(errno));
                return -3;
        }

        while (fgets(buffer, 1024, fo)) {
                login[0] = 0;
                pass[0] = 0;
                name[0] = 0;
                //marcio:$1
$0Q3jtpHI$SNvnL7Xxh1KTkdMegP0ya1:1029:100:Zezim,,,:/home/marcio:/bin/false
                //marcio:$1$mcBWs964
$q5xOC4qU5trVb5AvVbQDI.:1001:0::0:0:Fabricio:/home/marcio:/bin/tcsh
                i = 0;
                j = 0;
                for (; buffer[i] != ':'; i++) {
                        login[j++] = buffer[i];
                }
                i++; // pula o :
                login[j] = 0;
                j = 0;
                for (; buffer[i] != ':'; i++) {
                        pass[j++] = buffer[i];
                }
                i++; // pula o :
                while (buffer[i++] != ':');
                while (buffer[i++] != ':');
                pass[j] = 0;
                j = 0;
                for (; buffer[i] != ',' && buffer[i] != ':'; i++) {
                        name[j++] = buffer[i];
                }
                name[j] = 0;

                fprintf(fd, "%s:%s:%d:100::0:0:%s:/home/%s:/sbin/nologin\n", 
login, pass, uid++, name, login);
                fflush(fd);
                sprintf(cmd, "/usr/sbin/pwd_mkdb -p /etc/master.passwd");
                system(cmd);
                sprintf(cmd, "/bin/mkdir /usr/home/%s ; /usr/sbin/chown %
d:users /usr/home/%s", login, uid, login);
                system(cmd);
        }
        printf("done!\n");
}

---------- Original Message -----------
From: Andre Luiz <[EMAIL PROTECTED]>
To: freebsd@fug.com.br
Sent: Tue, 24 May 2005 11:58:15 -0300 (ART)
Subject: [FUG-BR] Migrar usuarios

> Alguem poderia me dizer como migrar os usuarios do Slackware pro 
> FreeBSD, a versao q estou usando do Free é a 5.2. Obrigado
> 
> __________________________________________________
> Converse com seus amigos em tempo real com o Yahoo! Messenger 
> http://br.download.yahoo.com/messenger/ 
> _______________________________________________
> Freebsd mailing list
> Freebsd@fug.com.br
> http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br
------- End of Original Message -------


_______________________________________________
Freebsd mailing list
Freebsd@fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br

Responder a