/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";
}
|