SINTASSI
rexecdDESCRIZIONE
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 .
DIAGNOSTICA
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.
- 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.
BUG
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.
STORIA
Il comando è apparso in BSD 4.2 .