5 Einträge, 1 Seite |
Quoteroot:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
foreach $zeile (<Datei>)
{
my @zeile = split(/:/,$zeile); # Aufsplitten der Zeile
$zeile = join(':',(@zeile)[2,3,4,5,6]); # Array ohne User und Passwort
$namenliste{$zeile[0]} = $zeile; # hash füllen: key = user-name,
# value = UID, GID, Komment, home, shell
}
print "\n", "Datei Passwd erfolgreich eingelesen.\n";
close (Datei);
print "\n Dies sind die Namen der User. Welche User soll ausfuehrlich angezeigt werden? \n ";
foreach $key (keys(%namenliste))
{
print " $key \n";
}
print "Fuer welchen Benutzer sollen die Daten angezeigt werden? ";
$name = <STDIN>;
chomp ($name);
if (exists $namenliste{$name}) # Ausgabe der Daten für einen Benutzer
{
print "\nDaten des Benutzers $name aus passwd :";
print "\nUser-ID: $zeile[2]";
print "\nGroup-ID: $zeile[3]";
print "\nKommentar: $zeile[4]";
print "\nHome-Verz: $zeile[5]";
print "\nShell: $zeile[6]";
}
else
{ print "\nBenutzer falsch eingegeben"; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl
# vim: set ts=4 sw=4 et sta:
use strict;
use warnings;
my %hash = ();
open my $etc_passwd, "/etc/passwd" or die "open /etc/passwd: $!\n";
while ( my $line = <$etc_passwd> ) {
chomp $line;
my ( $user, @rest ) = split(/:/, $line );
# Hash of Array (HoA)
$hash{$user} = \@rest;
}
close $etc_passwd or die "close /etc/passwd: $!\n";
for my $user ( keys %hash ) {
# HoA dereferenzieren
my @data = @{ $hash{$user} };
# zugriff auf den Daten-Array des Users $user
print "$user : @data", $/;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use strict;
use warnings;
use Data::Dumper;
my %userlist = ();
while (my $line = <DATA>) {
chomp($line);
my %row = ();
@row{qw/user locked uid gid comment home shell/} = split /:/, $line;
$userlist{$row{user}} = \%row;
}
while ( 1 ) {
print "\nWelcher Benutzer soll angezeigt werden? ";
chomp(my $user = <STDIN>);
if ($userlist{$user}) {
print "\nDaten des Benutzers $user aus passwd :";
print "\nUser-ID: $userlist{$user}{uid}";
print "\nGroup-ID: $userlist{$user}{gid}";
print "\nKommentar: $userlist{$user}{comment}";
print "\nHome-Verz: $userlist{$user}{home}";
print "\nShell: $userlist{$user}{shell}\n";
} else {
print "Diesen Benutzer gibt es nicht!\n";
}
}
__END__
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
foreach $zeile (<Datei>)
5 Einträge, 1 Seite |