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.
rcmd(3),
rexecd(8)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Jean-Pierre Giraud <
[email protected]>
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 à
[email protected]