rcmd.3

来自「minix操作系统最新版本(3.1.1)的源代码」· 3 代码 · 共 142 行

3
142
字号
.\" Copyright (c) 1983 Regents of the University of California..\" All rights reserved.  The Berkeley software License Agreement.\" specifies the terms and conditions for redistribution..\".\"	@(#)rcmd.3	6.7 (Berkeley) 5/14/86.\".TH RCMD 3 "May 14, 1986".UC 5.SH NAMErcmd, rresvport, ruserok \- routines for returning a stream to a remote command.SH SYNOPSIS.nf.B "#include <sys/types.h>".B "#include <net/netlib.h>".PP.B "rem = rcmd(ahost, inport, locuser, remuser, cmd, fd2p);".B char **ahost;.B int inport;.B "char *locuser, *remuser, *cmd;".B int *fd2p;.PP.B s = rresvport(port);.B int *port;.PP.B "ruserok(rhost, superuser, ruser, luser);".B char *rhost;.B int superuser;.B char *ruser, *luser;.fi.SH DESCRIPTION.I Rcmdis a routine used by the super-user to execute a command ona remote machine using an authentication scheme basedon reserved port numbers..I Rresvportis a routine which returns a descriptor to a socketwith an address in the privileged port space..I Ruserokis a routine used by serversto authenticate clients requesting service with.IR rcmd .All three functions are present in the same file and are usedby the.IR rshd (8)server (among others)..PP.I Rcmdlooks up the host.I *ahostusing.IR gethostbyname (3),returning \-1 if the host does not exist.Otherwise.I *ahostis set to the standard name of the hostand a connection is established to a serverresiding at the well-known Internet port.IR inport ..PPIf the connection succeeds,a socket in the Internet domain of type SOCK_STREAMis returned to the caller, and given to the remotecommand as .B stdinand.BR stdout .If.I fd2pis non-zero, then an auxiliary channel to a controlprocess will be set up, and a descriptor for it will be placedin.IR *fd2p .The control process will return diagnosticoutput from the command (unit 2) on this channel, and will alsoaccept bytes on this channel as being UNIX signal numbers, to beforwarded to the process group of the command.If.I fd2pis 0, then the .B stderr(unit 2 of the remotecommand) will be made the same as the .B stdoutand noprovision is made for sending arbitrary signals to the remote process,although you may be able to get its attention by using out-of-band data..PPThe protocol is described in detail in.IR rshd (8)..PPThe.I rresvportroutine is used to obtain a socket with a privilegedaddress bound to it.  This socket is suitable for useby .I rcmdand several other routines.  Privileged Internet ports are thosein the range 0 to 1023.  Only the super-useris allowed to bind an address of this sort to a socket..PP.I Ruseroktakes a remote host's name, as returned by a.IR gethostbyaddr (3)routine, two user names and a flag indicating whetherthe local user's name is that of the super-user.  It thenchecks the files .I /etc/hosts.equivand, possibly, .I .rhostsin the current working directory (normally the localuser's home directory) to see if the request forservice is allowed.  A 0 is returned if the machinename is listed in the ``hosts.equiv'' file, or thehost and remote user name are found in the ``.rhosts''file; otherwise .I ruserokreturns \-1.  If the.I superuserflag is 1, the checking of the ``host.equiv'' file isbypassed.If the local domain (as obtained from \fIgethostname\fP\|(3))is the same as the remote domain, only the machine name need be specified..SH SEE ALSOrlogin(1),rsh(1),intro(2),rexec(3),rexecd(8),rlogind(8),rshd(8).SH DIAGNOSTICS.I Rcmdreturns a valid socket descriptor on success.It returns -1 on error and prints a diagnostic message on the standard error..PP.I Rresvportreturns a valid, bound socket descriptor on success.It returns -1 on error with the global value.I errnoset according to the reason for failure.The error code EAGAIN is overloaded to mean ``All network ports in use.''

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?