Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

     rcmd, rresvport, iruserok, ruserok - Routines renvoyant un flux de
     données pour une commande invoquée à distance

SYNOPSIS

     #include <netdb.h>   /* Ou <unistd.h> sur certains systèmes */

     int
     rcmd(char **ahost, int inport, const char *locuser, const char *remuser,
             const char *cmd, int *fd2p);

     int
     rresvport(int *port);

     int
     iruserok(u_int32_t raddr, int superuser, const char *ruser,
             const char *luser);

     int
     ruserok(const char *rhost, int superuser, const char *ruser,
             const char *luser);

DESCRIPTION

     La fonction 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
     rresvport() renvoie un descripteur sur une socket se trouvant dans
     l’espace des numéros de ports privilégiés. Les fonctions iruserok() et
     ruserok() sont utilisées par les serveurs pour identifier les clients
     demandant un service avec 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 rcmd() recherche l’hôte *ahost en utilisant gethostbyname(3),
     puis renvoie -1 si cet hôte n’existe pas. Sinon *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 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 fd2p est non nul, un canal
     auxiliaire est créé pour un processus de contrôle, et son descripteur
     sera placé dans *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 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 rresvport() est utilisée pour obtenir une socket attachée à
     une adresse privilégiée. Cette socket est utilisable ensuite pour 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 iruserok() et 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 «.Pa hosts.equiv  », ou si les noms
     d’hôte et d’utilisateur distants sont trouvés dans le fichier «.Pa
     .rhosts  », iruserok() et 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
     iruserok() plutôt que ruserok() qui nécessitent d’avoir un serveur DNS
     digne de confiance pour le domaine distant.

VALEUR RENVOYÉE

     La fonction 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 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 4.2BSD.

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, et mise à
     disposition sur http://manpagesfr.free.fr/.

     Les mises à jour et corrections de la version présente dans Debian sont
     directement gérées par Nicolas François
     <nicolas.francois@centraliens.net> et l’équipe francophone de traduction
     de Debian.

     Veuillez signaler toute erreur de traduction en écrivant à
     <debian-l10n-french@lists.debian.org> ou 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> ».