Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Which backend is getpwent using?

by reisinge (Friar)
on Jul 11, 2013 at 13:11 UTC ( #1043720=perlquestion: print w/replies, xml ) Need Help??
reisinge has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I have the following code to find duplicate UIDs:

use strict; use warnings; use User::pwent; # overrides normal getpwent() use Test::More 'no_plan'; # Duplicate UIDs my @dups = duplicate_uids(); is( @dups, 0, "duplicate uids (@dups)" ); sub duplicate_uids { my @uids; while ( my $pwent = getpwent() ) { push @uids, $pwent->uid; } endpwent(); my %seen = (); my @dups = grep { $seen{$_}++ } @uids; if (@dups) { return @dups; } else { return 0; } }

I'm getting this output ...

not ok 10 - duplicate uids (0 65534) # Failed test 'duplicate uids (0 65534)' # at sys-test.pl line 57. # got: '2' # expected: '0'
... and the reason is that root (0) and nobody (65534) accounts exist both in /etc/passwd and LDAP.

Is there a way to distinguish between various user account backends (e.g. /etc/passwd, LDAP) from within a Perl program using getpwent?

Well done is better than well said. -- Benjamin Franklin

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1043720]
Approved by marto
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2016-12-05 06:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (72 votes). Check out past polls.