Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       rcmd,  rresvport,  iruserok,  ruserok,  rcmd_af,  rresvport_af,  iruserok_af,  ruserok_af - rutine pentru
       returnarea unui flux către o comandă la distanță

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <netdb.h>    /* Sau <unistd.h> pe unele sisteme */

       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);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       rcmd(), rcmd_af(), rresvport(), rresvport_af(), iruserok(), iruserok_af(), ruserok(), ruserok_af():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
           glibc 2.19 și versiunile anterioare:
               _BSD_SOURCE

DESCRIERE

       Funcția rcmd() este utilizată de superutilizator pentru a executa o  comandă  pe  o  mașină  la  distanță
       utilizând  o  schemă  de  autentificare  bazată  pe  numere  de porturi privilegiate. Funcția rresvport()
       returnează un descriptor de fișier către un  soclu  cu  o  adresă  în  spațiul  porturilor  privilegiate.
       Funcțiile  iruserok()  și ruserok() sunt utilizate de servere pentru a autentifica clienții care solicită
       servicii cu rcmd(). Toate cele patru funcții sunt utilizate de serverul rshd(8) (printre altele).

   rcmd()
       Funcția rcmd() caută gazda *ahost folosind gethostbyname(3), returnând -1 dacă gazda nu  există.  În  caz
       contrar,  *ahost este definit la numele standard al gazdei și se stabilește o conexiune la un server care
       se află la portul Internet bine cunoscut inport.

       Dacă conexiunea reușește, se returnează apelantului un soclu în domeniul  internet  de  tip  SOCK_STREAM,
       care  este transmis comenzii la distanță sub forma stdin și stdout. Dacă fd2p este diferit de zero, se va
       stabili un canal auxiliar către un proces de control și un descriptor  de  fișier  pentru  acesta  va  fi
       plasat  în  *fd2p.  Procesul de control va returna ieșirea de diagnosticare de la comandă (unitatea 2) pe
       acest canal și va accepta, de asemenea, octeți pe acest canal ca fiind numere de semnal UNIX, pentru a fi
       transmise grupului de procese al comenzii. Dacă fd2p este 0, atunci stderr (unitatea 2 a comenzii  de  la
       distanță)  va  fi  la fel ca stdout și nu se prevede trimiterea de semnale arbitrare către procesul de la
       distanță, deși este posibil să îi atrageți atenția folosind date în afara benzii.

       Protocolul este descris în detaliu în rshd(8).

   rresvport()
       Funcția rresvport() este utilizată pentru a obține un soclu cu  un  port  privilegiat  asociat  acestuia.
       Acest  soclu  este  potrivit  pentru  a  fi  utilizat  de  rcmd()  și  de  alte câteva funcții. Porturile
       privilegiate sunt cele din intervalul 0-1023. Numai un proces privilegiat (pe Linux, un proces  care  are
       capacitatea  CAP_NET_BIND_SERVICE în spațiul de nume al utilizatorului care guvernează spațiul de nume al
       rețelei sale) este autorizat să se conecteze la un port  privilegiat.  În  implementarea  glibc,  această
       funcție  își  limitează  căutarea  la porturile de la 512 la 1023. Argumentul port este valoare-rezultat:
       valoarea pe care o furnizează apelului este utilizată ca punct de plecare pentru o  căutare  circulară  a
       intervalului  de  porturi;  la  returnarea  (cu  succes),  acesta conține numărul portului la care a fost
       asociat.

   iruserok() și ruserok()
       Funcțiile iruserok() și ruserok() iau adresa IP sau numele unei gazde la distanță, respectiv două nume de
       utilizator și un indicator care arată dacă numele utilizatorului local este cel  al  superutilizatorului.
       Apoi,  dacă  utilizatorul  nu este superutilizatorul, se verifică fișierul /etc/hosts.equiv. Dacă această
       căutare nu este efectuată sau nu are succes, se verifică .rhosts din directorul local  al  utilizatorului
       pentru a vedea dacă cererea de serviciu este permisă.

       Dacă  acest  fișier  nu  există,  nu  este  un  fișier  obișnuit, este deținut de oricine altcineva decât
       utilizatorul sau superutilizatorul, poate fi scris de oricine altcineva decât proprietarul sau este legat
       printr-o legătură dură oriunde, verificarea eșuează automat. Se returnează zero dacă numele mașinii  este
       listat în fișierul hosts.equiv sau dacă gazda și numele de utilizator la distanță sunt găsite în fișierul
       .rhosts;  în caz contrar, iruserok() și ruserok() returnează -1. În cazul în care domeniul local (obținut
       de la gethostname(2)) este același cu domeniul la distanță, trebuie specificat doar numele mașinii.

       În cazul în care adresa IP a gazdei la distanță este cunoscută, iruserok() ar trebui să fie  utilizat  de
       preferință  față  de  ruserok(), deoarece nu necesită încredere în serverul DNS pentru domeniul gazdei la
       distanță.

   *_af() variante
       Toate funcțiile descrise mai sus funcționează cu socluri IPv4 (AF_INET). Variantele „_af” iau un argument
       suplimentar care permite specificarea familiei de adrese a soclului. Pentru aceste funcții, argumentul af
       poate fi specificat ca AF_INET sau AF_INET6. În plus, rcmd_af() acceptă utilizarea AF_UNSPEC.

VALOAREA RETURNATĂ

       Funcția rcmd() returnează un descriptor de soclu valid în caz de succes. Returnează -1 în caz  de  eroare
       și imprimă un mesaj de diagnostic la ieșirea de eroare standard.

       Funcția  rresvport()  returnează  un descriptor de soclu valid și legat în caz de succes. În caz de eșec,
       aceasta returnează -1 și configurează errno  pentru  a  indica  eroarea.  Codul  de  eroare  EAGAIN  este
       supraîncărcat pentru a semnifica: „Toate porturile de rețea sunt utilizate”.

       Pentru informații privind returnarea de la ruserok() și iruserok(), a se vedea mai sus.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌──────────────────────────────────────────────────────────────────┬───────────────────┬────────────────┐
       │ InterfațăAtributValoare        │
       ├──────────────────────────────────────────────────────────────────┼───────────────────┼────────────────┤
       │ rcmd(), rcmd_af()                                                │ Siguranța firelor │ MT-Unsafe      │
       ├──────────────────────────────────────────────────────────────────┼───────────────────┼────────────────┤
       │ rresvport(), rresvport_af()                                      │ Siguranța firelor │ MT-Safe        │
       ├──────────────────────────────────────────────────────────────────┼───────────────────┼────────────────┤
       │ iruserok(), ruserok(), iruserok_af(), ruserok_af()               │ Siguranța firelor │ MT-Safe locale │
       └──────────────────────────────────────────────────────────────────┴───────────────────┴────────────────┘

STANDARDE

       BSD.

ISTORIC

       iruserok_af()
       rcmd_af()
       rresvport_af()
       ruserok_af()
              glibc 2.2.

       Solaris,  4.2BSD.   Variantele „_af” sunt adăugate mai recent și nu sunt prezente pe o gamă atât de largă
       de sisteme.

ERORI

       iruserok() și iruserok_af() sunt declarate în antetele glibc doar de la glibc 2.12.

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                            rcmd(3)