|
|||||||||||||||||||||||||||
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 |
|
||||||||||||||
|
||||||||||||||