getpwnam() et getgrnam() dans un environnement particulier - C - Programmation
Marsh Posté le 09-07-2005 à 16:32:38
Moi j'utilise getpwuid qui est posix
Code :
|
Marsh Posté le 09-07-2005 à 18:02:39
hum et si j'ai pas le uid?
le petit prog que je dois faire recoit un username et un password
si le username est dans /etc/passwd
j'authentifie localement
sinon
si le username est dans un groupe X
j'authentifie à DCE
sinon je refuse la connexion
jai presque fini mes fonctions pour parser manuellement les fichiers /etc/passwd et /etc/group pour ce que j'ai besoin comme info
Marsh Posté le 09-07-2005 à 18:56:06
je comprends pas ton binz avec getpwnam. Ni ton histoire de contexte.
De plus j'ajoute que d'un point de vue sécurité, c'est important de savoir OÙ on se loggue, je suis donc hostile à un truc qui change la procédure dans mon dos.
Marsh Posté le 09-07-2005 à 19:18:17
ok j'explique
on a des serveurs AIX sur lesquels on peut soit s'identifier localement (si on dispose d'un id local, comme root) ou avec un id DCE
l'équipe de database m'a demandé un petit tool qui fait le traitement suivant:
1: vérifie si le userid existe localement. Si c'est le cas, test son authentification localement et retourne nous le résultat en sortie (1 pour SUCCESS, 0 pour FAILED)
2: sinon, vérifis si le user fait parti du groupe "toto" (exemple bidon). Si c'est le cas, test l'authentification au niveau de DCE et retourne nous le résultat en sortie (1 pour SUCESS, 0 pour FAILED)
3: sinon retourne 0 pour FAILED puisqu'on ne veut pas que des userids non-locaux ne faisant pas partie de notre groupe toto puisse accéder à notre truc
c'est plus clair? on se fou un peu de ce qu'ils vont faire avec le prog, ca ne créer pas de crédential, ca ne fait que tester si la combinaison login/password est bonne si ca réponds aux spécifications
Marsh Posté le 09-07-2005 à 13:59:43
J'ai un environnement AIX sous lequel on a un service d'authentification DCE
Je cherche à vérifié la présence d'un userid dans le fichier /etc/passwd alors je me dis que j'allais utilisé la fonction getpwnam()
Cependant, le fait que notre client d'authentification DCE tourne sur cet machine semble modifier notre contexte, puisqu'un userid n'étant pas dans /etc/passwd mais dans DCE me retournera une entrée quand j'appelerai la fonction getpwnam(), ce que je ne veux aps
outre le parsing du fichier /etc/passwd à la main, vous voyez une autre solution qui s'offre à moi?