charlesx1552 has asked for the wisdom of the Perl Monks concerning the following question:
Hi all, I've been tasked with curating a program that takes in a username and checks with /etc/pass file, in hopes of it being valid and outputting the users ID and home directory This is what I have and it works but always says user invalid, leading me to believe something about the section regarding fields is incorrect... Thanks in advance!!
$filename = '/etc/passwd.bak'; open(FILE, $filename) or die "Could not read from $filename, program s +topped."; print "Please enter the username: \n"; $username = <STDIN>; while(<FILE>){ chomp $username; if ($username eq @fields[1]){ print "Home directory: $fields[5]\n"; print "Shell used: $fields[6]\n"; exit 0; } if ($username ne @fields[1]){ print "User: $username does not exist.\n"; exit 0; } @fields = split(':', $_); } close FILE;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Trying to take user input as username, read etc/passwd and output user ID
by Fletch (Bishop) on May 11, 2022 at 03:54 UTC | |
|
Re: Trying to take user input as username, read etc/passwd and output user ID
by afoken (Chancellor) on May 11, 2022 at 05:18 UTC | |
|
Re: Trying to take user input as username, read etc/passwd and output user ID
by Discipulus (Canon) on May 11, 2022 at 08:32 UTC |