OVH Cloud OVH Cloud

uid

7 réponses
Avatar
Bonjour,

je cherche dans un programme c a optenir l'uid d'un utilisateur dont je
ne connais que le nom de login.
J'ai beau fouiller unistd.h (sans doute mal) je ne trouve pas de
fonction qui fait ca? quelqu'un sait comment faire ?

Snop.

7 réponses

Avatar
Laurent Wacrenier
@(none) <> écrit:
je cherche dans un programme c a optenir l'uid d'un utilisateur dont je
ne connais que le nom de login.


C'est un devoir à rendre ? Vous êtes le troisième à poser cette
question en 15 jours.

Avatar
Laurent Wacrenier wrote:
@(none) <> écrit:

je cherche dans un programme c a optenir l'uid d'un utilisateur dont je
ne connais que le nom de login.



C'est un devoir à rendre ? Vous êtes le troisième à poser cette
question en 15 jours.

Ca fait pas trops avance le schmilblic ca...

je vois pas de trace dans les 15 dernier la prochiane jours mais bon
ta reponse m'ayant laisse entendre que ca devait etre trivial.

j'ai cherche encore un peu et ca l'ai en enffet si l'on sait ou
chercher. (Bref des fois je devrais reflechir un peu plus avant de
poster...Desole...)

Enfin voila donc ma solution pour les hypothetiques 2 autres
personnes qui cherche a le faire...

uid_t luid=(getpwnam("LENOMDELOGIN"))->pw_uid;


Snop.


Avatar
Rakotomandimby
none wrote:

Bonjour,


Bonjour

je cherche dans un programme c a optenir l'uid d'un utilisateur dont je
ne connais que le nom de login.


Tout est dans /etc/passwd , si tu fais des manipulations avec les champs de
ce fichier , tu devrai t'en sortir .

Cela dit , si il a vu en parler plusieurs fois , tu devrai non pas le
critiquer comme tu as fait mais plutot chercher et faire une synthese au
lieu de l'ouvrir aussi grand , pour ne rien dire finalement .

--
http://mrakotom.free.fr

Avatar
Nicolas Chuche
Rakotomandimby disait le 02/08/04 que :

Tout est dans /etc/passwd , si tu fais des manipulations avec les champs de
ce fichier , tu devrai t'en sortir .


Non.

Comment ça se passe quand on utilise une base de compte centralisée
(NIS, LDAP, ...) ?

Avatar
Erwan David
"@(none)" <""olivier"@(none)"> écrivait :

Bonjour,

je cherche dans un programme c a optenir l'uid d'un utilisateur dont
je ne connais que le nom de login.
J'ai beau fouiller unistd.h (sans doute mal) je ne trouve pas de
fonction qui fait ca? quelqu'un sait comment faire ?


man getpwent() getpwuid() etc... et dans ton cas où tu connais le nom
getpwnam()


--
Erwan

Avatar
Moi
Dans l'article <40255097$0$28625$
écrivait :

je cherche dans un programme c a optenir l'uid d'un utilisateur dont je
ne connais que le nom de login.
J'ai beau fouiller unistd.h (sans doute mal) je ne trouve pas de
fonction qui fait ca? quelqu'un sait comment faire ?



Un truc qui ferait ça :

:~/src/divers$ ./home moi
./home Run by tpinelli
User unknown : moi

:~/src/divers$ ./home mail
./home Run by tpinelli
Homedir : /
Shell :
Name : mail
Uid : 8

:~/src/divers$ ./home root
./home Run by tpinelli
Homedir : /root
Shell : /bin/bash
Name :
Uid : 0


J'ai ça.

C'est mon jour de bonté, au risque de m'attirer les foudres
de f.c.u

Une version allégée :


#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main (int argc, char ** argv)

{
struct passwd *pw;
if (argc == 1) {
printf("Syntax : %s usern" , argv[0]);
return(EXIT_FAILURE);
}
pw = getpwnam(argv[1]);
if (pw) {
printf("Uid : %i n" , pw->pw_uid);
}
else {
printf("User unknown : %s n" , argv[1]);
}
return(EXIT_SUCCESS);
}

Avatar
Laurent Wacrenier
Moi écrit:

printf("Syntax : %s usern" , argv[0]);
fprintf(stderr, "Syntax: %s usern" , argv[0]);


(on écrit les erreurs dans stderr, et lorsqu'on écrit en anglais, on
suit la typographie anglaise, pas d'espace avant les signes doubles)