rexec(3) | Library Functions Manual | rexec(3) |
rewec, rexec_af - Renvoyer un flux sur une commande distante
Bibliothèque C standard (libc, -lc)
#include <netdb.h>
[[obsolète]] int rexec(char **restrict ahost, int inport, const char *restrict user, const char *restrict passwd, const char *restrict cmd, int *restrict fd2p);
[[obsolète]] int rexec_af(char **restrict ahost, int inport, const char *restrict user, const char *restrict passwd, const char *restrict cmd, int *restrict fd2p, sa_family_t af);
rexec(), rexec_af():
Depuis la glibc 2.19 :
_DEFAULT_SOURCE
Dans la glibc jusqu'à la version 2.19 incluse :
_BSD_SOURCE
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. Sinon, *ahost est configuré avec le nom standard de l'hôte. Si un nom d'utilisateur et un mot de passe sont également indiqués, ils sont utilisés pour s'authentifier sur l'hôte ; autrement, les informations appropriées sont recherchée dans l'environnement puis dans le fichier .netrc situé dans le répertoire personnel de l'utilisateur. Si cela échoue, les informations sont demandées à l'utilisateur.
Le port inport indique le port Internet DARPA qui sera utilisé pour la connexion ; l'appel getservbyname("exec", "tcp") (consultez 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 dans la mesure où une connexion secondaire est configurée après que l'autorisation a été vérifiée. Si fd2p vaut 0, stderr (unité 2 de la commande distante) sera la même que stdout et rien n'est prévu pour envoyer des signaux arbitraires au processus distant, bien qu'il soit possible d'obtenir son attention en transmettant des données supplémentaires.
La fonction rexec() fonctionne en IPv4 (AF_INET). En revanche, la fonction rexec_af() fournit un argument supplémentaire, af, qui permet à l'appelant de sélectionner le protocole. Cet argument peut être indiqué comme AF_INET, AF_INET6 ou AF_UNSPEC (pour permettre à l'implémentation de sélectionner le protocole).
La fonction rexec_af() a été ajoutée dans la glibc 2.2.
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur |
rexec(), rexec_af() | Sécurité des threads | MT-Unsafe |
Ces fonctions ne sont pas dans POSIX.1. La fonction rexec() est d'abord apparue dans 4.2BSD, et est présente sur BSD, Solaris et bien d'autres systèmes. La fonction rexec_af() est plus récente, donc moins répandue.
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 ; consultez rexecd(8) pour plus d'explications.
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
15 décembre 2022 | Pages du manuel de Linux 6.03 |