Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
RCMD
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- DIAGNOSTICS
- CONFORMITÉ
- VOIR AUSSI
- TRADUCTION
4 juin 1993
BSD 4.2
NOM
rcmd
rresvport
iruserok
ruserok
- Routines renvoyant un flux de données pour une commande invoquée à distance
SYNOPSIS
Fd #include <netdb.h> /* Ou <unistd.h> sur certains systèmes */
Ft int
Fn rcmd char **ahost int inport const char *locuser const char *remuser const char *cmd int *fd2p
Ft int
Fn rresvport int *port
Ft int
Fn iruserok u_int32_t raddr int superuser const char *ruser const char *luser
Ft int
Fn ruserok const char *rhost int superuser const char *ruser const char *luser
DESCRIPTION
La fonction
Fn rcmd
est utilisée par le superutilisateur pour exécuter
une commande sur une machine distante, en utilisant un schéma
d'identification basé sur des numéros de ports réservés. La fonction
Fn rresvport
renvoie un descripteur sur une socket se trouvant dans l'espace
des numéros de ports privilégiés. Les fonctions
Fn iruserok
et
Fn ruserok
sont utilisées par les serveurs pour identifier les clients
demandant un service avec
Fn rcmd .
Les quatre fonctions sont déclarées
dans le même fichier et sont utilisées par le serveur
rshd(8)
(entre
autres).
La fonction
Fn rcmd
recherche l'hôte
Fa *ahost
en utilisant
gethostbyname(3),
puis renvoie -1 si cet hôte n'existe pas. Sinon
Fa *ahost
est rempli avec le nom standard de cet hôte, et une connexion est
établie avec un serveur se trouvant sur l'un des ports bien connus
Fa inport .
Si la connexion réussit, une socket dans le domaine Internet de type
SOCK_STREAM
est renvoyée à l'appelant, et est fournie à la commande
distante en guise de
stdin
et
stdout
Si
Fa fd2p
est non
nul, un canal auxiliaire est créé pour un processus de contrôle, et son
descripteur sera placé dans
Fa *fd2p .
Le processus de contrôle renverra
les sorties de diagnostic (numéro 2) sur ce canal, et acceptera également
des octets qu'il considérera comme des numéros de signal
UNIX
à
envoyer au groupe de processus de la commande. Si
Fa fd2p
est nul, alors
stderr
(sortie numéro 2 de la commande distante) sera renvoyée sur
stdout
et rien n'est prévu pour l'envoi de signaux arbitraires au
processus distant, bien que vous puissiez y parvenir en utilisant des
données hors-bande.
Le protocole est décrit en détail dans
rshd(8).
La fonction
Fn rresvport
est utilisée pour obtenir une socket attachée à
une adresse privilégiée. Cette socket est utilisable ensuite pour
Fn rcmd
et plusieurs autres fonctions. Les numéros de ports Internet
privilégiés se trouvent dans l'intervalle 0 à 1023. Seul le superutilisateur
est autorisé à attacher une adresse de ce type à une socket.
Les fonctions
Fn iruserok
et
Fn ruserok
prennent respectivement en
argument une adresse IP et un nom d'hôte distant, deux noms d'utilisateurs
et un drapeau indiquant si l'utilisateur local est superutilisateur. Ainsi,
si l'utilisateur n'est
pas
le superutilisateur, elles vérifient le
fichier
/etc/hosts.equiv
Si ceci échoue, le fichier
.rhosts
est recherché dans le répertoire personnel de l'utilisateur local, afin de
voir si la requête est autorisée.
Si ce fichier n'existe pas, ou s'il ne s'agit pas d'un fichier régulier, ou
s'il appartient à quelqu'un d'autre que l'utilisateur local ou le
superutilisateur, ou encore s'il est accessible en écriture par quelqu'un
d'autre que son propriétaire, le test échoue automatiquement. Si la machine
est listée dans le fichier «hosts.equiv
», ou si les noms d'hôte et
d'utilisateur distants sont trouvés dans le fichier «.rhosts
»,
Fn iruserok
et
Fn ruserok
renvoient zéro. Sinon elles renvoient
-1. Si le domaine local (obtenu par l'intermédiaire de
gethostname(2))
est le même que le domaine distant, seul le nom de machine a besoin
d'être indiqué.
Si l'adresse IP de l'hôte distant est connue, on utilisera de préférence
Fn iruserok
plutôt que
Fn ruserok
qui nécessitent d'avoir un serveur
DNS digne de confiance pour le domaine distant.
DIAGNOSTICS
La fonction
Fn rcmd
renvoie un descripteur de socket valide si elle
réussit, sinon elle renvoie -1 et affiche un message de diagnostic sur sa
sortie d'erreur standard.
La fonction
Fn rresvport
renvoie un descripteur de socket valide,
attaché à une adresse privilégiée si elle réussit. Elle renvoie -1 sinon,
et
errno
contient le code d'erreur. Le code d'erreur
EAGAIN
signifie en réalité « Tous les ports réseau sont déjà utilisés ».
CONFORMITÉ
Pas dans POSIX.1-2001. Présentes sur les BSD, Solaris et beaucoup d'autres
systèmes. Ces fonctions sont apparues dans
BSD 4.2
VOIR AUSSI
rlogin(1),
rsh(1),
intro(2),
rexec(3),
rexecd(8),
rlogind(8),
rshd(8)
TRADUCTION
Cette page de manuel a été traduite et mise à jour par
Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003,
puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en
utilisant la commande
« man -L C <section> <page_de_man> ».
|