Commit | Line | Data |
---|---|---|
0071e94c C |
1 | .TH RCMD 3X "17 March 1982" |
2 | .UC 4 | |
3 | .SH NAME | |
4 | rcmd, rresvport, ruserok \- routines for returning a stream to a remote command | |
5 | .SH SYNOPSIS | |
6 | .nf | |
7 | .B "rem = rcmd(ahost, inport, locuser, remuser, cmd, fd2p);" | |
8 | .B char **ahost; | |
9 | .B u_short inport; | |
10 | .B "char *locuser, *remuser, *cmd;" | |
11 | .B int *fd2p; | |
12 | .PP | |
13 | .B s = rresvport(port); | |
14 | .B int *port; | |
15 | .PP | |
16 | .B "ruserok(rhost, superuser, ruser, luser);" | |
17 | .B char *rhost; | |
18 | .B int superuser; | |
19 | .B char *ruser, *luser; | |
20 | .fi | |
21 | .SH DESCRIPTION | |
22 | .I Rcmd | |
23 | is a routine used by the super-user to execute a command on | |
24 | a remote machine using an authentication scheme based | |
25 | on reserved port numbers. | |
26 | .I Rresvport | |
27 | is a routine which returns a descriptor to a socket | |
28 | with an address in the privileged port space. | |
29 | .I Ruserok | |
30 | is a routine used by servers | |
31 | to authenticate clients requesting service with | |
32 | .IR rcmd . | |
33 | All three functions are present in the same file and are used | |
34 | by the | |
35 | .IR rshd (8C) | |
36 | server (among others). | |
37 | .PP | |
38 | .I Rcmd | |
39 | looks up the host | |
40 | .I *ahost | |
41 | using | |
42 | .IR gethostbyname (3N), | |
43 | returning \-1 if the host does not exist. | |
44 | Otherwise | |
45 | .I *ahost | |
46 | is set to the standard name of the host | |
47 | and a connection is established to a server | |
48 | residing at the well-known Internet port | |
49 | .IR inport . | |
50 | .PP | |
51 | If the call succeeds, a socket of type SOCK_STREAM | |
52 | is returned to the caller, and given to the remote | |
53 | command as | |
54 | .B stdin | |
55 | and | |
56 | .BR stdout . | |
57 | If | |
58 | .I fd2p | |
59 | is non-zero, then an auxiliary channel to a control | |
60 | process will be set up, and a descriptor for it will be placed | |
61 | in | |
62 | .IR *fd2p . | |
63 | The control process will return diagnostic | |
64 | output from the command (unit 2) on this channel, and will also | |
65 | accept bytes on this channel as being UNIX signal numbers, to be | |
66 | forwarded to the process group of the command. | |
67 | If | |
68 | .I fd2p | |
69 | is 0, then the | |
70 | .B stderr | |
71 | (unit 2 of the remote | |
72 | command) will be made the same as the | |
73 | .B stdout | |
74 | and no | |
75 | provision is made for sending arbitrary signals to the remote process, | |
76 | although you may be able to get its attention by using out-of-band data. | |
77 | .PP | |
78 | The protocol is described in detail in | |
79 | .IR rshd (8C). | |
80 | .PP | |
81 | The | |
82 | .I rresvport | |
83 | routine is used to obtain a socket with a privileged | |
84 | address bound to it. This socket is suitable for use | |
85 | by | |
86 | .I rcmd | |
87 | and sevral other routines. Privileged addresses consist | |
88 | of a port in the range 0 to 1023. Only the super-user | |
89 | is allowed to bind an address of this sort to a socket. | |
90 | .PP | |
91 | .I Ruserok | |
92 | takes a remote host's name, as returned by a | |
93 | .IR gethostent (3N) | |
94 | routine, two user names and a flag indicating if | |
95 | the local user's name is the super-user. It then | |
96 | checks the files | |
97 | .I /etc/hosts.equiv | |
98 | and, possibly, | |
99 | .I .rhosts | |
100 | in the current working directory (normally the local | |
101 | user's home directory) to see if the request for | |
102 | service is allowed. A 1 is returned if the machine | |
103 | name is listed in the ``hosts.equiv'' file, or the | |
104 | host and remote user name are found in the ``.rhosts'' | |
105 | file; otherwise | |
106 | .I ruserok | |
107 | returns 0. If the | |
108 | .I superuser | |
109 | flag is 1, the checking of the ``host.equiv'' file is | |
110 | bypassed. | |
111 | .SH SEE ALSO | |
112 | rlogin(1C), | |
113 | rsh(1C), | |
114 | rexec(3X), | |
115 | rexecd(8C), | |
116 | rlogind(8C), | |
117 | rshd(8C) | |
118 | .SH BUGS | |
119 | There is no way to specify options to the | |
120 | .I socket | |
121 | call | |
122 | which | |
123 | .I rcmd | |
124 | makes. |