rexecd —
server
di esecuzione remota
rexecd
Rexecd è il server per la routine
rexec(3). Il server fornisce servizi di
esecuzione remota con autenticazione basata su nomi degli utenti e password.
Rexecd ascolta le richieste di servizio alla porta
indicata nelle specifiche del servizio ``exec''; vedere
services(5). Quando una richiesta di servizio
è ricevuta è iniziato il seguente protocollo:
- Il server legge caratteri dal socket fino a un byte NUL
(‘
\0
’). La stringa risultante
è interpretata come un numero ASCII base 10.
- Se il numero ricevuto al passo 1 è 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.
- Un nome utente che termina con NUL di almeno 16 caratteri
è trovato sul socket iniziale
- Una password che termina con NUL, non cifrata, di almeno
16 caratteri, è trovata sul socket iniziale.
- Un comando che termina con NUL da passare a una shell
è trovato sul socket iniziale. La lunghezza del comando è
limitata dal limite superiore sulla dimensione dell'elenco degli argomenti
di sistema.
-
Rexecd quindi valida l'utente
come fatto al momento del login e, se l'autenticazione ha successo, si
sposta sulla home directory dell' utente, e stabilisce le protezioni di
utente e gruppo dell'utente. Se uno di questi passi fallisce la
connessione è abortita e viene restituito un messaggio di
diagnostica.
- Viene restituito un byte NUL sul socket iniziale e la
linea di comando è passata alla shell di login normale dell'utente.
La shell eredita le connessioni della rete stabilite da
rexecd.
Tranne che per l'ultimo elencato in precedenza, tutti i messaggi di diagnostica
sono restituiti sul socket inziale, dopo di che tutte le connessioni di rete
sono chiuse. Un errore è indicato con un byte iniziale con un valore di
1 (lo 0 è restituito al passo 7 precedente in seguito al completamento
con successo di tutti i passi precedenti all' esecuzione del comando).
- username too long
- Il nome è più lungo di 16 caratteri.
- password too long
- La password è più lunga di 16 caratteri.
- command too long
- La linea di comando passata supera la dimensione
dell'elenco argomenti (come configurato nel sistema).
- Login incorrect.
- Non esiste alcun campo nel file delle password per il nome
utente.
- Password incorrect.
- E' stata fornita una password errata.
- No remote directory.
- Il comando chdir nella home
directory è fallito.
- Try again.
- Un fork del server è
fallito.
- <shellname>: ...
- La shell di login dell'utente non può essere
avviata. Questo messaggio è restituito sulla connessione associata
con stderr, e non è preceduto da un
byte flag.
rexec(3)
Indicare ``Login incorrect'' invece che ``Password incorrect'' è una
falla di sicurezza che permette alle persone di cercare nel sistema utenti con
password nulla.
Un servizio per permettere a tutti gli scambi di dati e password di essere
cifrati deve essere presente.
Il comando
rexecd è apparso in
4.2BSD.