Linux

CentOS 5.3

rexec(3)


REXEC

NOM

rexec − Renvoyer un flux sur une commande distante.

BIBLIOTHÃQUE

Compatibility Library (libcompat, −lcompat)

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ée 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 auxilliaire 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 est 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.

VOIR AUSSI

rcmd(3), rexecd(8)

CONFORMITÃ

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

BOGUES

La fonction rexec() envoie des mots de passe non crypté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.

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 14 août 2006. 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.


rexec(3)