Importing libexec/fingerd
This commit is contained in:
parent
406cdd95a6
commit
1d842c6a57
13 changed files with 461 additions and 156 deletions
|
@ -9,7 +9,7 @@ SUBDIR= add_route arp ash at backup basename btrace \
|
|||
dd decomp16 DESCRIBE devmand devsize df dhcpd \
|
||||
dhrystone diff dirname diskctl dumpcore \
|
||||
eject env expand factor fbdctl \
|
||||
find fingerd fix fold format fortune fsck.mfs \
|
||||
find fix fold format fortune fsck.mfs \
|
||||
gcore gcov-pull getty grep hexdump host \
|
||||
hostaddr id ifconfig ifdef \
|
||||
intr ipcrm ipcs irdpd isoread last \
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
PROG= in.fingerd
|
||||
SRCS= fingerd.c
|
||||
MAN=
|
||||
|
||||
.include <bsd.prog.mk>
|
|
@ -1,94 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 1983 Regents of the University of California.
|
||||
* All rights reserved. The Berkeley software License Agreement
|
||||
* specifies the terms and conditions for redistribution.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)in.fingerd.c 1.1 87/12/21 SMI"; /* from UCB 5.1 6/6/85 */
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
* Finger server.
|
||||
*/
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main( int argc, char *argv[] );
|
||||
void fatal( char *prog, char *s );
|
||||
|
||||
int main(argc, argv)
|
||||
char *argv[];
|
||||
{
|
||||
register char *sp;
|
||||
char line[512];
|
||||
int i, p[2], pid, status;
|
||||
FILE *fp;
|
||||
char *av[4];
|
||||
|
||||
line[0] = '\0';
|
||||
fgets(line, sizeof(line), stdin);
|
||||
sp = line + strlen(line);
|
||||
if (sp > line && *--sp == '\n') *sp = '\0';
|
||||
sp = line;
|
||||
av[0] = "finger";
|
||||
i = 1;
|
||||
while (1) {
|
||||
while (isspace(*sp))
|
||||
sp++;
|
||||
if (!*sp)
|
||||
break;
|
||||
if (*sp == '/' && (sp[1] == 'W' || sp[1] == 'w')) {
|
||||
sp += 2;
|
||||
av[i++] = "-l";
|
||||
}
|
||||
if (*sp && !isspace(*sp)) {
|
||||
av[i++] = sp;
|
||||
while (*sp && !isspace(*sp))
|
||||
sp++;
|
||||
*sp = '\0';
|
||||
}
|
||||
}
|
||||
av[i] = 0;
|
||||
if (pipe(p) < 0)
|
||||
fatal(argv[0], "pipe");
|
||||
if ((pid = fork()) == 0) {
|
||||
close(p[0]);
|
||||
if (p[1] != 1) {
|
||||
dup2(p[1], 1);
|
||||
close(p[1]);
|
||||
}
|
||||
execv("/usr/bin/finger", av);
|
||||
printf("No finger program found\n");
|
||||
fflush(stdout);
|
||||
_exit(1);
|
||||
}
|
||||
if (pid == -1)
|
||||
fatal(argv[0], "fork");
|
||||
close(p[1]);
|
||||
if ((fp = fdopen(p[0], "r")) == NULL)
|
||||
fatal(argv[0], "fdopen");
|
||||
while ((i = getc(fp)) != EOF) {
|
||||
if (i == '\n')
|
||||
putchar('\r');
|
||||
putchar(i);
|
||||
}
|
||||
fclose(fp);
|
||||
while ((i = wait(&status)) != pid && i != -1)
|
||||
;
|
||||
return(0);
|
||||
}
|
||||
|
||||
void fatal(prog, s)
|
||||
char *prog, *s;
|
||||
{
|
||||
|
||||
fprintf(stderr, "%s: ", prog);
|
||||
perror(s);
|
||||
exit(1);
|
||||
}
|
|
@ -128,6 +128,7 @@
|
|||
./lib minix-sys
|
||||
./lib/cpp minix-sys
|
||||
./libexec minix-sys
|
||||
./usr/libexec/fingerd minix-sys
|
||||
./usr/libexec/ftpd minix-sys
|
||||
./libexec/ld.elf_so minix-sys
|
||||
./libexec/ld-elf.so.1 minix-sys
|
||||
|
@ -314,7 +315,6 @@
|
|||
./usr/bin/ifconfig minix-sys
|
||||
./usr/bin/ifdef minix-sys
|
||||
./usr/bin/indent minix-sys
|
||||
./usr/bin/in.fingerd minix-sys
|
||||
./usr/bin/infocmp minix-sys
|
||||
./usr/bin/in.rshd minix-sys
|
||||
./usr/bin/install minix-sys
|
||||
|
|
|
@ -2,3 +2,4 @@ daemonize talkd
|
|||
daemonize tcpd shell in.rshd
|
||||
daemonize tcpd telnet in.telnetd
|
||||
daemonize tcpd ftp /usr/libexec/ftpd
|
||||
daemonize tcpd finger /usr/libexec/fingerd
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.include <bsd.own.mk>
|
||||
|
||||
SUBDIR= \
|
||||
ftpd \
|
||||
fingerd ftpd \
|
||||
ld.elf_so
|
||||
|
||||
.if defined(__MINIX)
|
||||
|
|
13
libexec/fingerd/Makefile
Normal file
13
libexec/fingerd/Makefile
Normal file
|
@ -0,0 +1,13 @@
|
|||
# $NetBSD: Makefile,v 1.9 2005/01/10 02:58:58 lukem Exp $
|
||||
# from: @(#)Makefile 8.1 (Berkeley) 6/4/93
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
PROG= fingerd
|
||||
MAN= fingerd.8
|
||||
|
||||
.if (${USE_INET6} != "no")
|
||||
CPPFLAGS+=-DINET6
|
||||
.endif
|
||||
|
||||
.include <bsd.prog.mk>
|
175
libexec/fingerd/fingerd.8
Normal file
175
libexec/fingerd/fingerd.8
Normal file
|
@ -0,0 +1,175 @@
|
|||
.\" $NetBSD: fingerd.8,v 1.20 2003/11/02 11:27:49 wiz Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 1980, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" from: @(#)fingerd.8 8.1 (Berkeley) 6/4/93
|
||||
.\"
|
||||
.Dd September 12, 2002
|
||||
.Dt FINGERD 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm fingerd
|
||||
.Nd remote user information server
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl 8ghlmpSsu
|
||||
.Op Fl P Ar filename
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is a simple protocol based on RFC 1288
|
||||
that provides an interface to the
|
||||
Name and Finger programs at several network sites.
|
||||
The program is supposed to return a friendly,
|
||||
human-oriented status report on either the system at the moment
|
||||
or a particular person in depth.
|
||||
There is no required format and the
|
||||
protocol consists mostly of specifying a single
|
||||
.Dq command line .
|
||||
.Pp
|
||||
.Nm
|
||||
is started by
|
||||
.Xr inetd 8 ,
|
||||
which listens for
|
||||
.Tn TCP
|
||||
requests at port 79.
|
||||
Once handed a connection,
|
||||
.Nm
|
||||
reads a single command line
|
||||
terminated by a
|
||||
.Aq Tn CRLF
|
||||
which it then passes to
|
||||
.Xr finger 1 .
|
||||
.Nm
|
||||
closes its connections as soon as the output is finished.
|
||||
.Pp
|
||||
If the line is null (i.e., just a
|
||||
.Aq Tn CRLF
|
||||
is sent) then
|
||||
.Xr finger 1
|
||||
returns a
|
||||
.Dq default
|
||||
report that lists all people logged into
|
||||
the system at that moment.
|
||||
.Pp
|
||||
If a user name is specified (e.g.,
|
||||
.Pf eric Aq Tn CRLF )
|
||||
then the
|
||||
response lists more extended information for only that particular user,
|
||||
whether logged in or not.
|
||||
Allowable
|
||||
.Dq names
|
||||
in the command line include both
|
||||
.Dq login names
|
||||
and
|
||||
.Dq user names .
|
||||
If a name is ambiguous, all possible derivations are returned.
|
||||
.Pp
|
||||
The following options may be passed to
|
||||
.Nm
|
||||
as server program arguments in
|
||||
.Pa /etc/inetd.conf :
|
||||
.Bl -tag -width XPXfilenameX
|
||||
.It Fl 8
|
||||
Enable 8-bit output.
|
||||
.It Fl g
|
||||
Do not show any gecos information besides the users' real names.
|
||||
.It Fl h
|
||||
Display the name of the remote host in short mode,
|
||||
instead of the office location and office phone.
|
||||
.It Fl l
|
||||
Enable logging.
|
||||
The name of the host originating the query, and the actual request
|
||||
is reported via
|
||||
.Xr syslog 3
|
||||
at LOG_NOTICE priority.
|
||||
A request of the form
|
||||
.Sq /W
|
||||
or
|
||||
.Sq /w
|
||||
will return long output.
|
||||
Empty requests will return all currently logged in users.
|
||||
All other requests look for specific users.
|
||||
See RFC 1288 for details.
|
||||
.It Fl m
|
||||
Prevent matching of
|
||||
.Ar user
|
||||
names.
|
||||
.Ar User
|
||||
is usually a login name; however, matching will also be done on the
|
||||
users' real names, unless the
|
||||
.Fl m
|
||||
option is supplied.
|
||||
.It Fl P Ar filename
|
||||
Use an alternate program as the local information provider.
|
||||
The default local program executed by
|
||||
.Nm
|
||||
is
|
||||
.Xr finger 1 .
|
||||
By specifying a customized local server, this option allows a system manager
|
||||
to have more control over what information is provided to remote sites.
|
||||
.It Fl p
|
||||
Prevents
|
||||
.Xr finger 1
|
||||
from displaying the contents of the
|
||||
.Dq Pa .plan
|
||||
and
|
||||
.Dq Pa .project
|
||||
files.
|
||||
.It Fl S
|
||||
Prints user information in short mode, one line per user.
|
||||
This overrides the
|
||||
.Dq Pa Whois switch
|
||||
that may be passed in from the remote client.
|
||||
.It Fl s
|
||||
Disable forwarding of queries to other remote hosts.
|
||||
.It Fl u
|
||||
Queries without a user name are rejected.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr finger 1 ,
|
||||
.Xr inetd 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
command appeared in
|
||||
.Bx 4.3 .
|
||||
.Sh BUGS
|
||||
Connecting directly to the server from a
|
||||
.Tn TIP
|
||||
or an equally narrow-minded
|
||||
.Tn TELNET Ns -protocol
|
||||
user program can result
|
||||
in meaningless attempts at option negotiation being sent to the
|
||||
server, which will foul up the command line interpretation.
|
||||
.Nm
|
||||
should be taught to filter out
|
||||
.Tn IAC Ns 's
|
||||
and perhaps even respond
|
||||
negatively
|
||||
.Pq Tn IAC WON'T
|
||||
to all option commands received.
|
233
libexec/fingerd/fingerd.c
Normal file
233
libexec/fingerd/fingerd.c
Normal file
|
@ -0,0 +1,233 @@
|
|||
/* $NetBSD: fingerd.c,v 1.27 2012/03/15 02:02:21 joerg Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
__COPYRIGHT("@(#) Copyright (c) 1983, 1993\
|
||||
The Regents of the University of California. All rights reserved.");
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "from: @(#)fingerd.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fingerd.c,v 1.27 2012/03/15 02:02:21 joerg Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <syslog.h>
|
||||
#include <netdb.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "pathnames.h"
|
||||
|
||||
__dead static void my_err(const char *, ...) __printflike(1, 2);
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
FILE *fp;
|
||||
int ch, ac = 2;
|
||||
char *lp = NULL /* XXX gcc */;
|
||||
struct sockaddr_storage ss;
|
||||
int p[2], logging, no_forward, user_required, short_list;
|
||||
socklen_t sval;
|
||||
#define ENTRIES 50
|
||||
char **ap, *av[ENTRIES + 1], **comp, line[1024], *prog, *s;
|
||||
#if 0
|
||||
const char *av[ENTRIES + 1], **comp;
|
||||
const char *prog;
|
||||
#endif
|
||||
char hostbuf[MAXHOSTNAMELEN];
|
||||
|
||||
prog = __UNCONST(_PATH_FINGER);
|
||||
logging = no_forward = user_required = short_list = 0;
|
||||
openlog("fingerd", LOG_PID, LOG_DAEMON);
|
||||
opterr = 0;
|
||||
while ((ch = getopt(argc, argv, "gsluShmpP:8")) != -1) {
|
||||
switch (ch) {
|
||||
case 'l':
|
||||
logging = 1;
|
||||
break;
|
||||
case 'P':
|
||||
prog = optarg;
|
||||
break;
|
||||
case 's':
|
||||
no_forward = 1;
|
||||
break;
|
||||
case 'u':
|
||||
user_required = 1;
|
||||
break;
|
||||
case 'S':
|
||||
short_list = 1;
|
||||
av[ac++] = __UNCONST("-s");
|
||||
break;
|
||||
case 'h':
|
||||
av[ac++] = __UNCONST("-h");
|
||||
break;
|
||||
case 'm':
|
||||
av[ac++] = __UNCONST("-m");
|
||||
break;
|
||||
case 'p':
|
||||
av[ac++] = __UNCONST("-p");
|
||||
break;
|
||||
case 'g':
|
||||
av[ac++] = __UNCONST("-g");
|
||||
break;
|
||||
case '8':
|
||||
av[ac++] = __UNCONST("-8");
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
my_err("illegal option -- %c", optopt);
|
||||
}
|
||||
if (ac >= ENTRIES)
|
||||
my_err("Too many options provided");
|
||||
}
|
||||
|
||||
|
||||
if (logging) {
|
||||
sval = sizeof(ss);
|
||||
if (getpeername(0, (struct sockaddr *)&ss, &sval) < 0)
|
||||
my_err("getpeername: %s", strerror(errno));
|
||||
(void)getnameinfo((struct sockaddr *)&ss, sval,
|
||||
hostbuf, sizeof(hostbuf), NULL, 0, 0);
|
||||
lp = hostbuf;
|
||||
}
|
||||
|
||||
if (!fgets(line, sizeof(line), stdin)) {
|
||||
if (logging)
|
||||
syslog(LOG_NOTICE, "query from %s", lp);
|
||||
exit(1);
|
||||
}
|
||||
while ((s = strrchr(line, '\n')) != NULL ||
|
||||
(s = strrchr(line, '\r')) != NULL)
|
||||
*s = '\0';
|
||||
|
||||
if (logging) {
|
||||
if (*line == '\0')
|
||||
syslog(LOG_NOTICE, "query from %s", lp);
|
||||
else
|
||||
syslog(LOG_NOTICE, "query from %s: %s", lp, line);
|
||||
}
|
||||
|
||||
if (ac >= ENTRIES)
|
||||
my_err("Too many options provided");
|
||||
av[ac++] = __UNCONST("--");
|
||||
comp = &av[1];
|
||||
for (lp = line, ap = &av[ac]; ac < ENTRIES;) {
|
||||
if ((*ap = strtok(lp, " \t\r\n")) == NULL)
|
||||
break;
|
||||
lp = NULL;
|
||||
if (no_forward && strchr(*ap, '@')) {
|
||||
(void) puts("forwarding service denied\r\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
ch = strlen(*ap);
|
||||
while ((*ap)[ch-1] == '@')
|
||||
(*ap)[--ch] = '\0';
|
||||
if (**ap == '\0')
|
||||
continue;
|
||||
|
||||
/* RFC1196: "/[Ww]" == "-l" */
|
||||
if ((*ap)[0] == '/' && ((*ap)[1] == 'W' || (*ap)[1] == 'w')) {
|
||||
if (!short_list) {
|
||||
av[1] = __UNCONST("-l");
|
||||
comp = &av[0];
|
||||
}
|
||||
} else {
|
||||
ap++;
|
||||
ac++;
|
||||
}
|
||||
}
|
||||
av[ENTRIES - 1] = NULL;
|
||||
|
||||
if ((lp = strrchr(prog, '/')))
|
||||
*comp = ++lp;
|
||||
else
|
||||
*comp = prog;
|
||||
|
||||
if (user_required) {
|
||||
for (ap = comp + 1; strcmp("--", *(ap++)); );
|
||||
if (*ap == NULL) {
|
||||
(void) puts("must provide username\r\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (pipe(p) < 0)
|
||||
my_err("pipe: %s", strerror(errno));
|
||||
|
||||
switch(fork()) {
|
||||
case 0:
|
||||
(void) close(p[0]);
|
||||
if (p[1] != 1) {
|
||||
(void) dup2(p[1], 1);
|
||||
(void) close(p[1]);
|
||||
}
|
||||
execv(prog, comp);
|
||||
my_err("execv: %s: %s", prog, strerror(errno));
|
||||
_exit(1);
|
||||
case -1:
|
||||
my_err("fork: %s", strerror(errno));
|
||||
}
|
||||
(void) close(p[1]);
|
||||
if (!(fp = fdopen(p[0], "r")))
|
||||
my_err("fdopen: %s", strerror(errno));
|
||||
while ((ch = getc(fp)) != EOF) {
|
||||
if (ch == '\n')
|
||||
putchar('\r');
|
||||
putchar(ch);
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static void
|
||||
my_err(const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
(void) vsyslog(LOG_ERR, fmt, ap);
|
||||
va_end(ap);
|
||||
exit(1);
|
||||
/* NOTREACHED */
|
||||
}
|
34
libexec/fingerd/pathnames.h
Normal file
34
libexec/fingerd/pathnames.h
Normal file
|
@ -0,0 +1,34 @@
|
|||
/* $NetBSD: pathnames.h,v 1.4 2003/08/07 09:46:38 agc Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)pathnames.h 5.3 (Berkeley) 6/1/90
|
||||
*/
|
||||
|
||||
#define _PATH_FINGER "/usr/bin/finger"
|
|
@ -1,6 +1,6 @@
|
|||
MAN= add_route.8 backup.8 boot.8 btrace.8 \
|
||||
cdprobe.8 chown.8 cleantmp.8 config.8 cron.8 \
|
||||
dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 fingerd.8 \
|
||||
dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 \
|
||||
getty.8 halt.8 hgfs.8 httpd.8 ifconfig.8 inet.8 init.8 \
|
||||
intr.8 irdpd.8 loadramdisk.8 MAKEDEV.8 \
|
||||
netconf.8 newroot.8 nonamed.8 \
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
.\" Copyright (c) 1980 Regents of the University of California.
|
||||
.\" All rights reserved. The Berkeley software License Agreement
|
||||
.\" specifies the terms and conditions for redistribution.
|
||||
.\"
|
||||
.\" @(#)fingerd.8c 6.1 (Berkeley) 5/23/86
|
||||
.\"
|
||||
.TH FINGERD 8 "May 23, 1986"
|
||||
.UC 6
|
||||
.SH NAME
|
||||
fingerd, in.fingerd \- remote user information server
|
||||
.SH SYNOPSIS
|
||||
.B "finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd"
|
||||
.br
|
||||
.B "tcpd finger /usr/sbin/in.fingerd in.fingerd"
|
||||
.SH DESCRIPTION
|
||||
.B Fingerd
|
||||
is a simple protocol based on RFC742 that provides an interface to the
|
||||
Name and Finger programs at several network sites.
|
||||
The program is supposed to return a friendly,
|
||||
human-oriented status report on either the system at the moment
|
||||
or a particular person in depth.
|
||||
There is no required format and the
|
||||
protocol consists mostly of specifying a single ``command line''.
|
||||
.PP
|
||||
.B Fingerd
|
||||
listens for TCP requests at port 79.
|
||||
Once connected it reads a single command line
|
||||
terminated by a <CRLF> which is passed to
|
||||
.BR finger (1).
|
||||
.B Fingerd
|
||||
closes its connections as soon as the output is finished.
|
||||
.PP
|
||||
If the line is null (i.e. just a <CRLF> is sent) then
|
||||
.B finger
|
||||
returns a ``default'' report that lists all people logged into
|
||||
the system at that moment.
|
||||
.PP
|
||||
If a user name is specified (e.g. eric<CRLF>) then the
|
||||
response lists more extended information for only that particular user,
|
||||
whether logged in or not.
|
||||
Allowable ``names'' in the command line include both ``login names''
|
||||
and ``user names''.
|
||||
If a name is ambiguous, all possible derivations are returned.
|
||||
.SH SEE ALSO
|
||||
.BR finger (1).
|
||||
.SH BUGS
|
||||
Connecting directly to the server from a TIP
|
||||
or an equally narrow-minded TELNET-protocol user program can result
|
||||
in meaningless attempts at option negotiation being sent to the
|
||||
server, which will foul up the command line interpretation.
|
||||
.B Fingerd
|
||||
should be taught to filter out IAC's and perhaps even respond
|
||||
negatively (IAC WON'T) to all option commands received.
|
|
@ -59,6 +59,7 @@
|
|||
2011/05/26 00:00:00,external/public-domain/xz
|
||||
2012/10/17 12:00:00,external/README
|
||||
2012/10/17 12:00:00,include
|
||||
2013/05/31 12:00:00,libexec/fingerd
|
||||
2012/10/17 12:00:00,libexec/ftpd
|
||||
2012/10/17 12:00:00,libexec/ld.elf_so
|
||||
2012/10/17 12:00:00,libexec/Makefile
|
||||
|
|
Loading…
Reference in a new issue