REXEC(3)

NOM
rexec - Renvoyer un flux sur une commande distante

SYNOPSIS

int rexec(char **ahost, int inport, char *user,
          char *passwd, char *cmd, int *fd2p);

DESCRIPTION
Cette interface est rendue obsolète par rcmd(3).

La fonction rexec() cherche l'hôte *ahost en utilisant gethostbyname(3). Elle renvoie -1 si l'hôte n'existe pas. Autrement, *ahost est configuré avec le nom standard de l'hôte. Si un nom d'utilisateur et un mot de passe sont également spécifiés, ils sont utilisés pour s'authentifier sur l'hôte ; autrement, on cherche les informations appropriées dans l'environnement puis dans le fichier .netrc de l'utilisateur situé dans le répertoire personnel. Si cela échoue, on demande l'information à l'utilisateur.

Le port inport spécifie quel port Internet DARPA sera utilisé pour la connexion ; l'appel getservbyname("exec", "tcp") (voir getservent(3)) renverra un pointeur sur une structure qui contient le port nécessaire. Le protocole de la connexion est décrit en détails dans rexecd(8).

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 comme stdin et stdout. Si fd2p est non nul, un canal auxiliaire sur un processus de contrôle sera configuré et un descripteur de celui-ci sera placé dans *fd2p. Le processus de contrôle renverra une sortie de diagnostic de la commande (unité 2) sur ce canal et acceptera les octets sur ce même canal comme étant des numéros de signaux Unix à transmettre au groupe du processus de la commande. L'information de diagnostic n'inclut pas l'échec d'autorisation distante. Une connexion secondaire est configurée après que l'autorisation ait été vérifiée. Si fd2p vaut 0, stderr (unité 2 de la commande distante) sera la même que stdout et aucun canal supplémentaire ne sera utilisé pour envoyer des signaux arbitraires au processus distant, bien qu'il soit possible d'obtenir son attention en transmettant des données supplémentaires.

CONFORMITÉ
Pas dans POSIX.1-2001. Présente sur les BSD, Solaris et beaucoup d'autres systèmes. La fonction rexec() est apparue dans BSD 4.2 .

BOGUES
La fonction rexec() envoie des mots de passe non chiffrés sur le réseau.

Le service sous-jacent est considéré comme un gros trou de sécurité et ne devrait pas être activé sur bien des machines ; voir rexecd(8) pour plus d'explications.

VOIR AUSSI
rcmd(3), rexecd(8)

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 12 juillet 2006 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 rexec ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.