Provided by: manpages-fr-dev_3.32d0.2p4-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(uint32_t raddr, int superuser,
                    const char *ruser, const char *luser);

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

   Exigences   de   macros   de   test   de   fonctionnalités   pour    la    glibc    (consultez
   feature_test_macros(7)) :

       rcmd(), rresvport(), ruserok() : _BSD_SOURCE

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
       privilégié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 « superuser ». 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,  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 BSD 4.2.

BOGUES

       iruserok() n'est pas déclarée dans les fichiers d'en-tête de la glibc.

VOIR AUSSI

       rlogin(1), rsh(1), intro(2), rexec(3), rexecd(8), rlogind(8), rshd(8)

COLOPHON

       Cette  page  fait partie de la publication 3.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction  francophone  au  sein  du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <URL:http://www.blaess.fr/christophe/>   (1996-2003),  Alain  Portal
       <URL:http://manpagesfr.free.fr/> (2003-2006). Nicolas François et l'équipe francophone  de
       traduction de Debian (2006-2009).

       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> ».