This file is indexed.

/usr/sbin/xconv.pl is in xinetd 1:2.3.14-7ubuntu4.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/usr/bin/perl
#/*
# * (c) Copyright 1998-2001 by Rob Braun
# * All rights reserved.  The file named COPYRIGHT specifies the terms
# * and conditions for redistribution.
# */

# $RCSid = "$Id: xconv.pl,v 1.3 2005/03/29 15:50:34 bbraun Exp $";

sub print_header;
sub print_defaults;


print_header;
print_defaults;

while( <STDIN> ) {

	$disable = 0;					# Default to 'enable'

	chomp;

	# Check for disable before we check for comments
	if (m/^\#<off>\#/i) {
		s/^.*?\s//;
		$disable = 1;
	}

	# Remove comment lines
	if( grep /^#/, $_ ) {
		next;
	}

	@command = split ;

	if( !defined $command[0] ) {
		next;
	}

	if( grep /rpc/, $command[2] ) {
		print STDERR "Warning: Service $command[0] not added because\n";
		print STDERR "xinetd does not handle rpc services well\n";
		next;
	}

	print "service $command[0]\n";
	print "{\n";
	print "\tsocket_type = $command[1]\n";
	print "\tprotocol    = $command[2]\n";
	if( $command[0] =~ /^\d+$/ ) {
		print "\tport        = $command[0]\n";
		print "\ttype        = UNLISTED\n";
	}
	if( grep /no/, $command[3] ) {
		print "\twait        = no\n";
	} else {
		print "\twait        = yes\n";
	}
	@user = split /[:\.]/, $command[4];
	print "\tuser        = $user[0]\n";
	if( defined $user[1] ) {
		print "\tgroup       = $user[1]\n";
	}
	# Amanda is a special case, it needs this, see
	# http://www.amanda.org/docs/install.html and 
	# Bug report #167367
	if ( $command[6] =~ /(amandad|amindexd|amidxtaped)/ ) {
		print "\tgroups      = yes\n";
	}
	if( grep /internal/, $command[5] ) {
		print "\ttype        = INTERNAL\n";
		print "\tid          = $command[0]-$command[1]\n";
	} elsif ( $command[5] =~ /\/usr\/sbin\/tcpd/ ){
	# Tcp wrapping is already implemented in xinetd
		print "\tserver      = $command[6]\n";
		if ( defined $command[7] ) {
			print "\tserver_args = ";
			$i = 7;
			while( defined $command[$i] ) {
				print "$command[$i] ";
				$i++;
			}
			print "\n";
		}
	
	} else {
		print "\tserver      = $command[5]\n";
		print "\tserver_args = ";

		$i = 6;
		while( defined $command[$i] ) {
			print "$command[$i] ";
			$i++;
		}

		print "\n";
	}

	if ($disable) {
		print "\tdisable     = yes\n";
	}

	print "}\n";
	print "\n";
}

sub print_defaults
{
	print "# The defaults section sets some information for all services\n";
	print "defaults\n";
	print "{\n";
	print "\t#The maximum number of requests a particular service may handle\n";
	print "\t# at once.\n";
	print "\tinstances   = 25\n";
	print "\n";
	print "\t# The type of logging.  This logs to a file that is specified.\n";
	print "\t# Another option is: SYSLOG syslog_facility [syslog_level]\n";
	print "\tlog_type    = FILE /var/log/servicelog\n";
	print "\n";
	print "\t# What to log when the connection succeeds.\n";
	print "\t# PID logs the pid of the server processing the request.\n";
	print "\t# HOST logs the remote host's ip address.\n";
	print "\t# USERID logs the remote user (using RFC 1413)\n";
	print "\t# EXIT logs the exit status of the server.\n";
	print "\t# DURATION logs the duration of the session.\n";
	print "\tlog_on_success = HOST PID\n";
	print "\n";
	print "\t# What to log when the connection fails.  Same options as above\n";
	print "\tlog_on_failure = HOST\n";
	print "\n";
	print "\t# The maximum number of connections a specific IP address can\n";
	print "\t# have to a specific service.  \n";
	print "\tper_source  = 5\n";

	print "}\n";
	print "\n";
}

sub print_header
{
	print "# This file generated by xconv.pl, included with the xinetd\n";
	print "# package.  xconv.pl was written by Rob Braun (bbraun\@synack.net)\n";
	print "#\n";
	print "# The file is merely a translation of your inetd.conf file into\n";
	print "# the equivalent in xinetd.conf syntax.  xinetd has many \n";
	print "# features that may not be taken advantage of with this translation.\n";
	print "# Please refer to the xinetd.conf man page for more information \n";
	print "# on how to properly configure xinetd.\n";
	print "\n";
	print "\n";
}