Provided by: manpages-it_2.80-3_all bug

NOME

     rshd - server della shell remota

SINTASSI

     rshd [-alnL]

DESCRIZIONE

     Il server rshd è il server per la routine rcmd(3) e, di conseguenza, per
     il programma rsh(1).  Il server fornisce servizi di esecuzione remota con
     autenticazione basata su numeri di porta privilegiati da host di fiducia.

     Il server rshd si mette in ascolto delle richieste di servizio alla porta
     indicata nella specifica di servizio ‘‘cmd’’; vedere services(5).  Quando
     viene ricevuta una richiesta di servizio viene iniziato il seguente
     protocollo:

     1.   Il server verifica la porta sorgente del client.  Se la porta non è
          nel range 512-1023, il server abortisce la connessione.

     2.   Il server legge cartteri dal socket fino a un byte null (‘\0’). La
          stringa risultante è interpretata come un numero ASCII base 10.

     3.   Se il numero ricevuto nel passo 2 è non-zero, esso è interpretato
          come numero di porta di un flusso secondario da usare per stderr.
          Una seconda connessione è quindi creata sulla porta specificata
          sulla macchina client. Anche la porta sorgente di questa seconda
          connessione è nel range 512-1023.

     4.   Il server verifica l’indirizzo sorgente del client e richiede il
          corrispondente nome host (vedere gethostbyaddr(3), hosts(5) e
          named(8)).  Se il nome host non può essere determinato, è usata la
          rappresentazione con notazione a punti dell’indirizzo dell’host.  Se
          il nome dell’host è nello stesso dominio del server (in accordo con
          gli ultimi due componenti del nome di dominio), o se viene data l’
          opzione -a sono richiesti gli indirizzi per quel nome host,
          verificando che nome e indirizzo corrispondano.  Se la verifica
          dell’indirizzo fallisce, la connessione è abortita con il messaggio,
          ‘‘Host address mismatch.’’

     5.   Un nome di utente che finisce con null di almeno 16 caratteri è
          recuperato sul primo socket. Questo nome utente è interpretato come
          identità dell’utente sulla macchina del client.

     6.   Un nome di utente che termina con null di almeno 16 caratteri è
          recuperato sul primo socket. Questo nome utente è interpretato come
          identità dell’utente da usare sulla macchina del server.

     7.   Un comando che termina con null da passare a una shell è recuperato
          sul primo socket. La lunghezza del comando è limitata dal limite
          superiore nella dimensione dell’elenco degli argomenti del sistema.

     8.   Rshd quindi valida l’utente usando ruserok(3), che usa il file
          /etc/hosts.equiv e il file .rhosts trovato nella home directory
          dell’utente. L’opzione -l impedisce a ruserok(3) di effettuare
          validazioni basate sul file ‘‘.rhosts’’ dell’utente, a meno che
          l’utente non sia il superutente.

     9.   Se il file /etc/nologin esiste e l’utente non è il superutente, la
          connessione è chiusa.

     10.  Un byte null è restituito sul primo socket e la linea di comando è
          passata alla normale shell di login dell’utente. La shell eredita le
          connessione di rete stabilite da rshd.

     I messaggi keepalive a livello trasporto sono abilitato a meno che non
     sia presente l’opzione -n.  L’uso di messaggi keepalive permette alle
     sessioni di scadere se il client va in crash o diviene irraggiungibile.

     L’opzione -L causa il log di tutti gli accessi riusciti in syslogd(8)
     come messaggi auth.info.

DIAGNOSTICA

     Tranne l’ultimo elencato sopra, tutti i messaggi di diagnostica sono
     restituiti al primo socket, dopo di che goni connessione di rete viene
     chiusa.  In errore è indicato da un byte iniziale con un valore di 1 (0 è
     restituito nel precedente passo 10 quando tutti i passi precedenti
     l’esecuzione della shell di login sono completati con successo).

     Locuser too long.
             Il nome dell’utente sulla macchina del client è più lungo di 16
             caratteri.

     Ruser too long.
             Il nome dell’utente sulla macchina remota è più lungo di 16
             caratteri.

     Command too long.
             La linea di comando passata supera le dimensioni dell’elenco
             argomenti (come configurato nel sistema).

     Login incorrect.
             Non esiste alcun campo nel file password per il nome utente.

     Remote directory.
             Il comando chdir nella home directory è fallito.

     Permission denied.
             La procedura di autenticazione descritta sopra è fallita.

     Cant make pipe.
             La pipe necessaria per stderr, non è stata creata.

     Cant fork; try again.
             Un fork del server è fallito.

     <shellname>: ...
             La shell di login dell’utente non può essere avviata. Questo
             messaggio è restituito alla connessione associata con stderr, e
             on è preceduto da un byte flag.

VEDERE ANCHE

     rsh(1), rcmd(3), ruserok(3)

BUG

     La procedura di autenticazione usata qui presume l’integrità di ciascuna
     macchina client e del mezzo di connessione. Questo non è sicuro, ma è
     utile in un ambiente ‘‘open’’.

     Deve essere presente un servizio per permettere la cifratura di tutti gli
     scambi di dati.

     Può essere usato un protocollo più estensibile (come Telnet).