Man page - rcmd_af(3)

Packages contains this manual

Available languages:

en fr ja ro

Manual

rcmd

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
rcmd()
rresvport()
iruserok() et ruserok()
Variantes *_af()
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
BOGUES
VOIR AUSSI
TRADUCTION

NOM

rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af, ruserok_af — Routines renvoyant un flux de donnĂ©es pour une commande invoquĂ©e Ă  distance

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <netdb.h> /* Ou <unistd.h> sur certains systĂšmes */

int rcmd(char **restrict ahost , unsigned short inport ,
const char *restrict
locuser ,
const char *restrict
remuser ,
const char *restrict
cmd , int *restrict 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 );

int rcmd_af(char **restrict ahost , unsigned short inport ,
const char *restrict
locuser ,
const char *restrict
remuser ,
const char *restrict
cmd , int *restrict fd2p ,
sa_family_t
af );

int rresvport_af(int * port , sa_family_t af );

int iruserok_af(const void *restrict raddr , int superuser ,
const char *restrict
ruser , const char *restrict luser ,
sa_family_t
af );
int ruserok_af(const char *
rhost , int superuser ,
const char *
ruser , const char * luser ,
sa_family_t
af );

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

rcmd (), rcmd_af (), rresvport (), rresvport_af (), iruserok (), iruserok_af (), ruserok (), ruserok_af () :
Depuis la glibc 2.19 :
_DEFAULT_SOURCE
glibc 2.19 et antérieures :
_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 de fichier sur un 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 authentifier les clients demandant un service avec rcmd (). Les quatre fonctions sont utilisĂ©es (entre autres) par le serveur rshd (8).

rcmd()

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, un socket dans le domaine Internet de type SOCK_STREAM est renvoyĂ© Ă  l’appelant et est fourni Ă  la commande distante en guise de stdin et stdout . Si fd2p est diffĂ©rent de zĂ©ro, un canal auxiliaire est créé pour un processus de contrĂŽle, et son descripteur placĂ© dans *fd2p . Le processus de contrĂŽle renverra les sorties de sera 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 0, 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).

rresvport()

La fonction rresvport () est utilisĂ©e pour obtenir un socket attachĂ© Ă  un port privilĂ©giĂ©. Ce socket est utilisable ensuite pour rcmd () et plusieurs autres fonctions. Les numĂ©ros de ports privilĂ©giĂ©s se trouvent dans l’intervalle 0 Ă  1023. Seul un processus privilĂ©giĂ© ( CAP_NET_BIND_SERVICE ) a le droit de s’associer Ă  un port privilĂ©giĂ©. Dans l’implĂ©mentation de la glibc, cette fonction restreint sa recherche du port 512 au port 1023. L’argument port est valeur-rĂ©sultat : la valeur qu’il fournit Ă  l’appel est utilisĂ©e comme point de dĂ©part pour une recherche circulaire de l’intervalle de port ; au retour (en cas de rĂ©ussite), il contient le numĂ©ro de port avec lequel il a Ă©tĂ© associĂ©.

iruserok() et ruserok()

Les fonctions iruserok () et ruserok () prennent respectivement en argument un nom ou une adresse IP d’hĂŽte distant, deux noms d’utilisateurs et un drapeau indiquant si l’utilisateur local est le superutilisateur « superuser ». Ainsi, si l’utilisateur n’est pas le superutilisateur, elles vĂ©rifient le fichier /etc/hosts.equiv . Si cela Ă©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, s’il ne s’agit pas d’un fichier ordinaire, 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, iruserok () sera prĂ©fĂ©rĂ©e Ă  ruserok (), car elle ne nĂ©cessite pas d’avoir un serveur DNS digne de confiance pour le domaine distant.

Variantes *_af()

Toutes les fonctions dĂ©crites ci-dessus fonctionnent avec des sockets IPv4 ( AF_INET ). Les variantes « _af » prennent un argument supplĂ©mentaire qui permet d’indiquer la famille d’adresse de socket. Pour ces fonctions, l’argument af peut ĂȘtre indiquĂ© comme AF_INET ou AF_INET6 . De plus, rcmd_af () permet d’utiliser AF_UNSPEC .

VALEUR RENVOYÉE

La fonction rcmd () renvoie un descripteur de socket valable 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 valable, 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 ».

Voir ci-dessus pour des renseignements sur les valeurs renvoyées par ruserok () et iruserok ().

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3867652-1.png

STANDARDS

BSD.

HISTORIQUE

iruserok_af ()
rcmd_af
()
rresvport_af
()
ruserok_af
()

glibc 2.2.

Solaris, 4.2BSD. Les variantes « _af » sont des ajouts plus récents et ne sont pas présentes sur de nombreux systÚmes.

BOGUES

iruserok () et iruserok_af () ne sont dĂ©clarĂ©es dans les fichiers d’en-tĂȘte de la glibc que depuis la glibc 2.12.

VOIR AUSSI

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

TRADUCTION

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 bubu <bubub@no-log.org>

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 .