File: rcmd.3

package info (click to toggle)
manpages-fr 0.9.3-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 7,052 kB
  • ctags: 4
  • sloc: makefile: 58; sh: 8
file content (199 lines) | stat: -rw-r--r-- 6,913 bytes parent folder | download | duplicates (2)
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
.\"	$NetBSD: rcmd.3,v 1.9 1996/05/28 02:07:39 mrg Exp $
.\"
.\" Copyright (c) 1983, 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. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. 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.
.\"
.\"     @(#)rcmd.3	8.1 (Berkeley) 6/4/93
.\"
.\" Contributed as Linux man page by David A. Holland, 970908
.\" I have not checked whether the Linux situation is exactly the same.
.\" Traduction 31/05/1998 par Christophe Blaess (ccb@club-internet.fr)
.\" LDP-man-pages 1.19
.TH RCMD 3 "31 Mai 1998" BSD "Manuel du programmeur Linux"
.SH NOM
rcmd, rresvport, iruserok, ruserok \- Routines renvoyant un flux de donnes pour une commande invoque  distance.
.SH SYNOPSIS
.nf
.B #include <unistd.h>
.sp
.BI "int rcmd (char ** " ahost ", int " inport ", const char *" locuser ", const char *" remuser ",  const char *" cmd ", int *" fd2p );
.sp
.BI "int rresvport ( int *" port );
.sp
.BI "int iruserok  (u_int32_t " raddr ", int " superuser ", const char *" ruser ", const char *" luser );
.sp
.BI "int ruserok (const char *" rhost ", int " superuser ", const char *" ruser ", const char *" luser );
.SH DESCRIPTION
La fonction
.B rcmd
est utilise par le Super-Utilisateur pour xcuter une commande
sur une machine distante, en utilisant un shma d'identification
bas sur des numros de ports rservs.

La fonction
.B rresvport
renvoie un descripteur sur une socket se trouvant dans l'espace des numros
de ports privilgis.

Les fonctions
.B iruserok
et
.B ruserok
sont utilises par les serveurs pour identifier les clients demandant un service
avec
.Fn rcmd .

Les 4 fonctions sont dclares dans le mme fichier et sont utilises par le serveur
.BR rshd (8)
entre autres.
.PP
La fonction
.B rcmd
recherche l'hte
.I *ahost
en utilisant 
.BR gethostbyname (3),
puis renvoie \-1 si cet hte n'existe pas. Sinon
.I *ahost
est rempli avec le nom standard de cet hte, et
une connexion est tablie avec un serveur se trouvant sur l'un
des ports bien connus
.I inport .
.PP
Si la connexion russit, une socket dans le domaine Internet, et de
type
.B SOCK_STREAM
est renvoye  l'appelant, et est fournie  la commande distante en guise de
.I stdin
et
.I stdout .
Si
.I fd2p
est non-nul, un canal auxiliaire est cr pour un processus de contrle, et son
descripteur sera plac dans 
.IR *fd2p .
Le processus de contrle renverra les sorties de diagnostique (numro 2) sur ce
canal, et acceptera galement des octets qu'il considrera comme des
numro de signal
.B UNIX
 envoyer au groupe de processus de la commande.
Si
.I fd2p
est nul, alors
.I stderr
(sortie numro 2 de la commande distante)
sera renvoye sur
.I stdout
et rien n'est prvu pour l'envoi de signaux arbitraires au processus distant, bien
que vous puissiez y parvenir en utilisant des donnes hors-bande.
.PP
Le protocole est dcrit en dtail dans
.BR rshd (8).
.PP
La fonction
.B rresvport
est utilise pour obtenir une socket attache  une adresse privilgie.
Cette socket est utilisable ensuite pour
.B rcmd
et plusieurs autres fonctions.
Les numros de ports Internet privilgis se trouvent dans l'intervalle 0  1023.
Seul le Super-Utilisateur est autoris  attacher une adresse de ce type  une socket.

.PP
Les fonctions
.B iruserok
et
.B ruserok
prennent respectivement en argument une adresse IP et un nom d'hte distant,
deux noms d'utilisateurs et un drapeau indiquant si l'utilisateur local est
Super-utilisateur.
Ainsi, si l'utilisateur n'est
.I PAS
le Super-Utilisateur, elles vrifient le fichier
.IR /etc/hosts.equiv .
Si ceci choue, le fichier
.I .rhosts
est recherch dans le rpertoire personnel de l'utilisateur local, afin
de voir si la requte est autorise.
.PP
Si ce fichier n'existe pas, ou s'il ne s'agit pas d'un fichier rgulier, 
ou s'il appartient  quelqu'un d'autre que l'utilisateur local ou
le super-utilisateur, ou encore s'il est accessible en criture par quelqu'un
d'autre que son propritaire, le test choue automatiquement.

Si la machine est liste dans le fichier
.IR hosts.equiv ,
ou si les noms d'hte et d'utilisateur distants sont trouvs dans
le fichier
.I .rhosts
.Fn iruserok
et
.Fn ruserok
renvoient zro.
Sinon elles renvoient -1.
Si le domaine local (obtenu par l'intermdiaire de
.BR gethostname (2))
est le mme que le domaine distant, seul le nom de machine a besoin d'tre
indiqu.
.PP
Si l'adresse IP de l'hte distant est connue, on
utilisera de prfrence
.B iruserok
plutt que
.B ruserok 
qui ncessitent d'avoir un serveur DNS digne de confiance pour le domaine distant.
.SH DIAGNOSTIQUE
La fonction
.B rcmd
renvoie un descripteur de socket valide si elle russit, sinon elle renvoie
-1 et affiche un message de diagnostique sur sa sortie d'erreur standard.
.PP
La fonction
.B rresvport
renvoie un descripteur de socket valide, attach  une adresse privilgie
si elle russit. Elle renvoie -1 sinon, et
.I errno
contient le code d'erreur.
Le code d'erreur
.B EAGAIN
signifie en ralit ``Tous les ports rseau sont dj utiliss''.
.SS "VOIR AUSSI"
.BR rlogin "(1), " rsh "(1), "
.BR rexec "(3), "
.BR rexecd "(8), " rlogind "(8), " rshd "(8)."
.SH HISTORIQUE
Ces fonctions sont apparues dans
.BR "BSD 4.2" .

.SH TRADUCTION
Christophe Blaess, 1998.