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
.\" MJ 21/07/2003 LDP-1.56
.TH RCMD 3 "21 juillet 2003" LDP "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),
.BR rsh (1),
.BR rexec (3),
.BR rexecd (8),
.BR rlogind (8),
.BR rshd (8)
.SH HISTORIQUE
Ces fonctions sont apparues dans
.BR "BSD 4.2" .
.SH TRADUCTION
Christophe Blaess, 1998-2003.
|