Provided by: manpages-fr_1.67.0-1_all bug

NOM

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

SYNOPSIS

       #include <unistd.h>

       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  Super-Utilisateur  pour  éxécuter
       une   commande   sur  une  machine  distante,  en  utilisant  un  shé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

       Les 4 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,  et  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  diagnostique  (numéro  2)  sur ce canal, et acceptera
       également des octets qu’il considérera comme des numéro 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  Super-
       Utilisateur  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 Super-utilisateur.  Ainsi,
       si  l’utilisateur  n’est  PAS  le Super-Utilisateur, 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  super-utilisateur,  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 et 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.

DIAGNOSTIQUE

       La  fonction  rcmd  renvoie  un  descripteur  de  socket valide si elle
       réussit, sinon elle renvoie -1 et affiche un  message  de  diagnostique
       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’’.

   VOIR AUSSI
       rlogin(1), rsh(1), rexec(3), rexecd(8), rlogind(8), rshd(8)

HISTORIQUE

       Ces fonctions sont apparues dans BSD 4.2.

TRADUCTION

       Christophe Blaess, 1998-2003.