RCMD(3)            Manuel du programmeur Linux            RCMD(3)


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, c
       int rresvport ( int *port);

       int iruserok  (u_int32_t raddr, int superuser, const char *ruser, const 
       int ruserok (const char *rhost, int superuser, const char *ruser, const 
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 Inter­
       net,  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).



BSD                        31 Mai 1998                          1





RCMD(3)            Manuel du programmeur Linux            RCMD(3)


       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 fonc­
       tions.  Les numéros de ports Internet privilégiés se trou­
       vent  dans  l'intervalle 0 à 1023.  Seul le Super-Utilisa­
       teur 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'utilisa­
       teur 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  mes­
       sage 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.



BSD                        31 Mai 1998                          2





RCMD(3)            Manuel du programmeur Linux            RCMD(3)


TRADUCTION
       Christophe Blaess, 1998.























































BSD                        31 Mai 1998                          3