Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: curiosodigital en 14 Septiembre 2010, 05:28 AM

Título: [solucionado] libreria para obtener los users de linux?
Publicado por: curiosodigital en 14 Septiembre 2010, 05:28 AM
Hola a todos, e estado buscando una libreria para encontrar los users de una pc en linux.
Y quisiera que me echen una mano, hasta aorita solo e logrado conseguir el usuario loggeado

Código (cpp) [Seleccionar]

#include <unistd.h>
char *a;
a=getlogin();


pero necesito encontrar los demas usuarios almacenados en mi maquina, alguien sabe como hacer esto?
Espero sus ayudas
Título: Re: libreria para obtener los users de linux?
Publicado por: Foxy Rider en 14 Septiembre 2010, 10:26 AM
Tenés getpwent(3) (http://www.freebsd.org/cgi/man.cgi?query=getpwent)
Acá te dejo un ejemplito sin ninguna verificación de errores y demás (lee la manpage)

#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>

int main()
{
    struct passwd* pwdDB = 0; /* Costumbre de inicializar a null ... */

    while(pwdDB = getpwent()) /* Mientras nos de distinto de null */
    {
        printf("Usuario : %s / UID : %u\r\n",pwdDB->pw_name, /* Mostremos Usuario +UID */
                                             pwdDB->pw_uid);
    }

    endpwent(); /* Cerremos cualquier archivo abierto */
    getchar();

    return 0;
}


Saludos.
Título: Re: libreria para obtener los users de linux?
Publicado por: curiosodigital en 14 Septiembre 2010, 21:59 PM
Gracias por la respuesta, pero ese programa me devuelve los usuarios, entre otras cosas:

Usuario : root / UID : 0

Usuario : daemon / UID : 1

Usuario : bin / UID : 2

Usuario : sys / UID : 3

Usuario : sync / UID : 4

Usuario : games / UID : 5

Usuario : man / UID : 6

Usuario : lp / UID : 7

Usuario : mail / UID : 8

Usuario : news / UID : 9

Usuario : uucp / UID : 10

Usuario : proxy / UID : 13

Usuario : www-data / UID : 33

Usuario : backup / UID : 34

Usuario : list / UID : 38

Usuario : irc / UID : 39

Usuario : gnats / UID : 41

Usuario : nobody / UID : 65534

Usuario : libuuid / UID : 100

Usuario : syslog / UID : 101

Usuario : messagebus / UID : 102

Usuario : avahi-autoipd / UID : 103

Usuario : avahi / UID : 104

Usuario : couchdb / UID : 105

Usuario : speech-dispatcher / UID : 106

Usuario : usbmux / UID : 107

Usuario : haldaemon / UID : 108

Usuario : kernoops / UID : 109

Usuario : pulse / UID : 110

Usuario : rtkit / UID : 111

Usuario : saned / UID : 112

Usuario : hplip / UID : 113

Usuario : gdm / UID : 114

Usuario : jose / UID : 1000

Usuario : kary / UID : 1001

y realmente solo necesito las ultimas dos lineas... y la primera.... como podria hacer esto?
O es que acaso todos los demás tambien son usuarios o algo asi???
Título: Re: libreria para obtener los users de linux?
Publicado por: tragantras en 14 Septiembre 2010, 22:03 PM
todo lo que has puesto son usuarios, si no entiendes el sistema de usuarios de linux, ese es otro tema xD
Título: Re: libreria para obtener los users de linux?
Publicado por: curiosodigital en 15 Septiembre 2010, 17:33 PM
jajajaj... si, ya luego luego, meti eso en google y me entere que eran users igual ;) muchas gracias por la ayuda!
Ahora toca meterlo en jni ¬¬ ... pero eso yo lo hago :) Muchas gracias nuevamente XD