system - esegue un comando di shell - funzione UNIX: SINTASSI: #include int system (const char * string); DESCRIZIONE system() esegue il comando spegificato nella strinfa argomento chiamando "/bin/sh -c string", e ritorna dopo che il comando e' stato completato. ESEMPIO system("ls -l > file.dir"); /* crea il file "file.dir" contenente la directory lunga della WD */ rsh - remote shell - comando Unix SINTASSI rsh [-Kdnx] [-k realm] [-l username] host [command] DESCRIZIONE Esegue "command" sulla shell remota di "host". ESEMPIO rsh arsenio ps aux|grep gianuzzi esegue sulla macchina "arsenio" il comando "ps aux|grep gianuzzi", listando l'output sul terminale locale. Se non e' specificato nessun comando, viene in realta' eseguito il comando "rlogin" (remote login). I metacaratteri della shell non "quoted" sono interpratati relativamente all'host locale, mentre quelli "quoted" sono riferiti all'host remoto. Ad esempio: rsh other_host cat remote_file >> local_file rsh other_host cat remote_file ">>" other_remote_file Il primo comando fa un append del file remoto "remote_file" memorizzato su "other_host" dopo il file "local_file" sull'host locale. Il secondo comando fa un append del file remoto "remote_file" dopo il file remoto "other_remote_file" sull'host remoto. rexec, rexec_r - Consente l'esecuzione di un comando su remote host - funzione Unix SINTASSI #include int rexec( char **host, int port, char *user, char *passwd, char *command, int *err file desc); int rexec_r( char **host, int port, char *user, char *passwd, char *command, int *err file desc, struct hostent_data *host data); PARAMETRI host nome host remoto (deve essere listato in /etc/hosts file o in /etc/resolv.conf). port specifica una well-known Internet port da usarsi per la connessione (tcp). user punta ad un user ID valido su quell'host. passwd punta alla password dell'utente specificato. command punta al nome del comando che deve essere eseguito in remoto. err file desc specifica il file a cui deve essere inviato lko standard error dal remote command. Ecc. host data ecc. Se rexec() connection ha successo, viene ritornato un socket del dominio Internet (SOCK STREAM) ed e' passato al al comando remoto come standard input e standard output. Se non sono forniti i parametri user e passwd, rexec() esegue le seguenti azioni finche' non trova uno user ID e password da inviare al remote host: 1. Cerca nel current environment lo user ID e password relativi al remote host. 2. Cerca nel file $HOME/.netrc che contiene lo user ID e password. 3. Richiede in input da console per avere user ID e password. non con rexec_r()). FILE UTILIZZATI PER CONNESSIONE /etc/hosts ---------- Contiene l'elenco di indirizzi IP e nomi host della rete locale. ES. 130.251.61.105 xenon.disi.unige.it xenon 127.0.0.1 localhost 130.251.61.107 krypton.disi.unige.it krypton 130.251.61.1 iris 130.251.61.11 diana.disi.unige.it diana 130.251.60.13 cartesio.dima.unige.it cartesio 130.251.61.7 violet ..... /etc/networks ------------- Contiene nomi e indirizzi Ip della rete utilizzati per l'instradamento, per indicare cioe' una rete con il nome invece dell'indirizzo IP. /etc/resolv.conf ---------------- Utilizzata per ottenere l'indirizzo IP che corrisponde ad un nome di host. lista le coppie name-value che forniscono informazioni per il BIND resolver. coppie: domain local domain name nameserver
Internet address di un name server ES. nameserver 130.251.61.19 ; elios.disi.unige.it elios nameserver 130.251.60.13 ; perceval.dima.unige.it perceval /etc/hosts.equiv ---------------- Contiene una lista di "trusted hosts". Usato dai comandi rsh, rlogin e rcp. Attenzione: gli host listati possono compromettere la security. Sono listati: host_i nome host [login_n] user individuale autorizzato che puo' effettuare il login senza password. Se non sono specificati user, tutti gli utenti sono abilitati. =============================== LIBRO con esempi di uso TCP e UDP: * Unix Network Programming (Stevens), Prentice-Hall, 1990. LIBRI consultabili, soprattutto per chi vuole istallare un collegamento Internet a casa, altrimenti aspettare il corso di RETI!!! * I segreti di Linux (Barkakati), Ed. Apogeo, 1996. * Linux: Guida per l'amministratore di rete, Jackson Libri, 1996. * Internetworking con TCP/IP (D. Comer), Prentice-Hall, 1992. * Unix System Administrator Handbook, (Nemeth et al.), Prentice-Hall, 1989. * Computer Network (A. Tanenbaum), Prentice-Hall, 1988. (moooolto generale)