SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] getpwent læser /etc/{passwd,shadow}mere end een gang



Christian Hemmingsen <sslug@sslug> writes:

> Den er nødt til at virke på den måde for at fungere korrekt[1] med
> shadow passwords. Nedenstående C program illustrerer hvordan jeg tror
> perl gør.

Nu fandt jeg også ud af hvordan perl rent faktisk gør. Følgende stump
kode giver samme virkning som Ole oplever. Det er kaldet til getspnam
der giver læsningen af /etc/shadow.

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

void main() {
    struct passwd *pwent;
    while (pwent=getpwent()) { 
        getspnam(pwent->pw_name);
    }
}

Det hele sker i funktionen pp_gpwent i pp_sys.c. getspnam ser ikke ud
til at være dokumenteret på mit system, derfor valgte jeg at overse
den i min første kikken på funktionen.

Jeg kan ikke i koden se nogen vej uden om. Eneste mulighed er at kalde
C-funktionen getpwent direkte gennem Inline::C som vist andetssted.

-- 
 Peter Makholm     |              I have no caps-lock but I must scream...
 sslug@sslug |                                               -- Greg
 http://hacking.dk |                                                      


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:54
Denne side vedligeholdes af MHonArc .