File: generic.pl

package info (click to toggle)
cfingerd 1.4.3-10
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 968 kB
  • sloc: ansic: 3,776; perl: 501; makefile: 137; sh: 73
file content (127 lines) | stat: -rw-r--r-- 2,155 bytes parent folder | download | duplicates (8)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
## Generic/Standard routines
## by Ken Hollis <khollis@bitgate.com>
##
## This program is GPLed.  Please read "LICENSE" for more information.
## Copyright (C) 1996, Bitgate Software.

sub get_os {
	local ($uname);
	local ($ver);

	print "Operating system ... ";

	$uname = `uname`;
	chop($uname);
	$uname =~ tr/a-z/A-Z/;

	# Tiny hack to make GNU/kFreeBSD and GNU/Hurd act as GNU/Linux
	if (($uname eq 'GNU/KFREEBSD') || ($uname eq 'GNU')) {
	    $uname = 'LINUX';
	}

	$ver = `uname -r`;
	chop($ver);

	print "$uname\n";
	return ($uname,$ver);
}

sub get_lastlog {
	my $ll = shift;

	print "Lastlog ... ";

	if (!$ll) {
	    if (-e "/var/log/lastlog") {
		$ll = "/var/log/lastlog";
	    } elsif (-e "/var/adm/lastlog") {
		$ll = "/var/adm/lastlog";
	    } else {
		$ll = "/var/adm/wtmp";
	    }
	}

	print "$ll\n";
	return $ll;
}

sub get_nobody {
	my $uid = shift;
	my $gid = shift;
	my @foo;

	print "Nobody UID/GID ... ";

	if (($uid eq "") || ($gid eq "")) {
	    if (open (PW, "/etc/passwd")) {
		while (<PW>) {
		    next unless (/^nobody:/);
		    @foo = split (/:/);
		    $uid = $foo[2] if (!$uid);
		    $gid = $foo[3] if (!$gid);
		}
		close (PW);
	    }
	}

	if (($uid eq "") || ($gid eq "")) {
		$uid = 65535;
		$gid = 65535;
	}

	print "$uid, $gid\n";
	return "$uid,$gid";
}

sub has_shadow {
	local($shad);

	print "Shadow passwords ... ";

	if (-e "/etc/shadow") {
		$shad = "Y";
	} else {
		$shad = "N";
	}

	print (($shad eq "Y") ? "/etc/shadow\n" : "No shadow\n");
	return $shad;
}

sub get_mailspool {
	my $spool = shift;

	print "Mail spool directory ... ";
	if (!$spool) {
	    if (-d "/var/spool/mail") {
		$spool = "/var/spool/mail";
	    } elsif (-d "/var/mail") {
		$spool = "/var/mail";
	    } else {
		print "Not found.  Assuming ";
		$spool = "/var/spool/mail";
	    }
	}
	print "$spool\n";
	return $spool;
}

sub get_mandir {
	my $dir = shift;

	print "Manpages root directory ... ";
	if (!$dir) {
	    if (-d "/usr/share/man") {
		$dir = "/usr/share/man";
	    } elsif (-d "/usr/man") {
		$dir = "/usr/man";
	    } else {
		print "Not found.  Assuming ";
		$dir = "/usr/man";
	    }
	}
	print "$dir\n";
	return $dir;
}

1;