BSD-FAQ-it Matteo Riondato Membro dello Staff del GUFI Massimiliano Stucchi Membro dello Staff del GUFI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "BSD-FAQ-it Matteo Riondato Membro dello Staff del GUFI rionda@gufi.org Massimiliano Stucchi Membro dello Staff del GUFI max@gufi."

Transcript

1 BSD-FAQ-it Matteo Riondato Membro dello Staff del GUFI Massimiliano Stucchi Membro dello Staff del GUFI

2 BSD-FAQ-it Matteo Riondato Massimiliano Stucchi Pubblicato $Id: book.sgml,v /02/16 16:07:11 rionda Exp $ Copyright Il team di BSD-FAQ-it Domande e risposte relative a BSD BSD-FAQ-it è un progetto di documentazione nato con l intento di creare un insieme di domande e risposte sul mondo BSD che possa dare una mano sia a chi si accosta da novizio a questo particolare tipo di sistemi operativi, sia agli esperti che cercano una soluzione ai propri problemi. La ridistribuzione e l uso come sorgente (SGML DocBook) e in forme compilate (SGML, HTML, PDF, PostScript, RTF e cosí via) con o senza modifiche, sono permessi a patto che le seguenti condizioni vengano rispettate: 1. Le ridistribuzioni del codice sorgente (SGML DocBook) devono mantenere le suddette note sul copyright, questa lista di condizioni e il seguente avviso, non modificati, come prime linee di questo file. 2. Le ridistribuzioni in forma compilata (trasformazioni in altri DTD, conversioni in PDF, PostScript, RTF e altri formati) devono riportare le suddette note di copyright, questa lista di condizioni e il seguente avviso nella documentazione e/o in altri materiali forniti con la distribuzione. Importante: QUESTA DOCUMENTAZIONE È FORNITA DAL BSD-FAQ-it TEAM "COSÌ COM È" E NON VIENE RICONOSCIUTA NESSUNA GARANZIA ESPLICITA O IMPLICITA, INCLUSE, MA NON SOLO, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE. IN NESSUN CASO IL FREEBSD ITALIAN DOCUMENTATION PROJECT POTRÀ ESSERE RITENUTO RESPONSABILE DI QUALSIASI DANNO DIRETTO, INDIRETTO, ACCIDENTALE, SPECIALE, SIMBOLICO, O CONSEGUENTE (INCLUSI, MA NON SOLO, L ACQUISIZIONE DI BENI O SERVIZI SOSTITUTIVI; LA PERDITA D USABILITÀ, DI DATI O DI PROFITTI; O L INTERRUZIONE DEL LAVORO) COMUNQUE CAUSATO E SULLA BASE DI QUALUNQUE TEORIA DI RESPONSABILITÀ, SIA CONTRATTUALE, SIA OGGETTIVA, SIA FONDATA SULL ILLECITO CIVILE (INCLUSA NEGLIGENZA O QUANT ALTRO) DERIVANTE IN OGNI MODO DALL USO DI QUESTA DOCUMENTAZIONE, ANCHE SE AVVISATO DELLA POSSIBILITÀ DI DETTO DANNO. Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. CVSup is a registered trademark of John D. Polstra. Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

3 Linux is a registered trademark of Linus Torvalds. Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries. XFree86 is a trademark of The XFree86 Project, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the or the symbol.

4 Sommario Benvenuti a BSD-FAQ-it...i I. FAQ di FreeBSD...i 1. Introduzione a FreeBSD Cosa è FreeBSD? Qual è lo scopo del progetto FreeBSD? La FreeBSD license ha qualche restrizione? Può FreeBSD rimpiazzare il mio attuale sistema operativo? Perché è chiamato FreeBSD? Qual è l ultima versione di FreeBSD? Che cos è FreeBSD-CURRENT? Qual è il concetto di FreeBSD-STABLE? Quando vengono fatte le release di FreeBSD? Chi è responsabile per FreeBSD? Dove posso trovare FreeBSD? Come posso preparare un mirror di FreeBSD? Come posso avere accesso al database dei Problem Report? Come divento un mirror web di FreeBSD? Quali altre fonti di informazione ci sono? Documentazione e Supporto Che bei libri ci sono che parlano di FreeBSD?...7 II. Domande e Risposte Amministrazione del Sistema Come posso usare le accentate in console? Come posso eseguire un comando a una determinata ora di un determinato giorno? Il prompt di default della shell è bruttino, come posso cambiarlo? Come posso fare eseguire un comando ogni determinato lasso di tempo? Esiste un modo per evitare di scrivere un intero comando molto lungo ogni volta? Come posso aggiornare il sistema? Come ricompilo il sistema? Ho ricompilato il sistema ma al riavvio ci sono dei problemi. Cosa posso fare? Come posso ottenere i sorgenti relativi a una data precisa? Come mai ogni 497 giorni uptime(1) riazzera il conteggio dei giorni? Come formatto i floppy disk? Come aggiungo un utente a un gruppo? Come cambio l hostname? Come faccio a sapere il mio indirizzo IP? Come posso sapere quali utenti hanno effettuato il login ultimamente? Come posso sapere quali utenti sono connessi al momento? Come si caricano i moduli del kernel? Come faccio a sapere quali moduli del kernel sono caricati? Come posso usare la lingua italiana nei programmi che la supportano? Cosa sono i permessi di un file? Come cambio i permessi di un file? Posso aumentare la risoluzione dello schermo in console?...25 iv

5 3.23. Come configuro il mio sistema FreeBSD affinché faccia da gateway tra la mia rete locale e Internet? Come cambio l utente e/o il gruppo proprietario di un file? Come regolo l orologio di sistema? Come vengono identificati i dischi rigidi e i lettori cdrom in FreeBSD? Come partiziono un disco per FreeBSD? Come posso sapere quali porte sono aperte nel mio sistema? Che differenza c è tra APM e ACPI? Come attivo APM su una 5.x? Come disattivo ACPI? Come posso utilizzare tutto lo spazio possibile della partizione? Ho perso il file /etc/master.passwd, come lo ricreo? Perché non riesco ad avere l output di ls(1) a colori? Come posso sapere quanta memoria di swap sto usando? Come posso rivedere il messaggi di probe delle device al boot? Come posso montare un immagine ISO? Mi si è rovinato l MBR, come posso reinstallarlo? Chi è l utente toor? Non riesco a diventare root utilizzando su(1). Come posso fare? Posso cambiare il messaggio che viene mostrato ad ogni login? Come installo le applicazioni? Cos è un port? Cos è un package? Come rimuovo un port o un package? Come aggiorno i ports/packages installati? XFree Come posso usare le applicazioni X via SSH? Come installo i driver proprietari per le schede grafiche NVIDIA? Come posso usare la rotella del mouse? Come configuro il server grafico X? Applicazioni e Varie Come posso crackare le password del mio sistema per verificare se sono sicure? Come posso vedere un DVD? Come compilo ipfw2 su una 4.X? Come aggiorno il database di locate(1)? Come posso creare file MP3? Come creo un immagine ISO? Come creo i cd di dati? Come creo i CD audio? Posso giocare a Quake 3 Arena con FreeBSD? Come posso ricevere la posta con fetchmail? Come cambio shell? Come posso usare il mio modem Alcatel Speedtouch USB? Posso usare l OpenSSH incluso nei ports, invece di quello di sistema?...54 III. Appendici...56 A. Suggeritori, Correttori, Critici, Supporters, Amici...57 Colophon...58 v

6 Benvenuti a BSD-FAQ-it Come è solito fare con le FAQ (o Frequently Asked Questions, domande poste più di sovente), questo documento cerca di coprire le domande che più frequentemente sono state poste su mailing list o su IRC da utenti spesso considerati inesperti nel mondo BSD, mentre altre arrivano dalle esperienze personali dei partecipanti al progetto. Come punto di partenza abbiamo deciso di tradurre le FAQ di FreeBSD, anche se il progetto ha come intento quello di riunire documentazione riguardante tutti e tre i sistemi operativi della famiglia. Questo sarà utile per avere una base consistente dalla quale partire per fornire un insieme completo di domande con le relative risposte. Un ringraziamento speciale va al GUFI (Gruppo Utenti FreeBSD Italia) che supporta ufficialmente questo progetto, offrendo continuo supporto e risorse. Questo insieme di domande e risposte è in continua evoluzione e non sarebbe mai stato possibile crearlo senza l aiuto di tutte quelle persone che con la loro costanza e passione, ma soprattutto con una grande curiosità hanno posto domande a tutti coloro che erano pronti ad ascoltarle e fornire una risposta esaustiva. Saremmo dunque grati se, trovando una domanda alla quale non viene data risposta nel nostro documento, ci mandaste una comunicandola. L indirizzo è <bsdfaqit@willystudios.com>. i

7 I. FAQ di FreeBSD I capitoli che seguono sono la traduzione delle FAQ ufficiali del progetto FreeBSD, che si trovano all indirizzo

8 Capitolo 1. Introduzione a FreeBSD 1.1. Cosa è FreeBSD? In parole povere, FreeBSD è un sistema operativo di tipo UN*X per le architetture i386, PC-98, Alpha/AXP, e le piattaforme UltraSPARC basato sulla release 4.4BSD-Lite, con alcuni miglioramenti provenienti da 4.4BSD-Lite2. È anche basato indirettamente sul port di William Jolitz di Net/2 dell università di Berkeley su i386, conosciuto come 386BSD, anche se rimane poco del codice di 386BSD. Una descrizione più completa riguardo a cosa sia FreeBSD e cosa potrebbe fare per te la trovi sul sito del GUFI ( Gruppo Utenti FreeBSD Italia. FreeBSD è usato da aziende, Internet Service Providers, ricercatori, professionisti dell informatica, studenti e utenti casalinghi in tutto il mondo per lavoro, educazione e ricreazione. Per informazioni più dettagliate su FreeBSD, prova a dare un occhiata all handbook ( di cui esiste una parziale traduzione in italiano ( Qual è lo scopo del progetto FreeBSD? L obiettivo del progetto FreeBSD è fornire del software che può essere usato per qualsiasi scopo e senza fronzoli. Molti di noi hanno investito significativamente nel codice (e nel progetto) e non importa ricevere riconoscimenti economici di tanto in tanto, pur non insistendo su questo fatto. Crediamo che la nostra missione primaria sia fornire codice a chiunque, per qualsiasi scopo, cosicchè il codice trovi il suo ampio spazio di utilizzo e produca i benefici maggiori. Questo, crediamo, è uno degli obiettivi fondamentali del Software Libero, un idea che supportiamo con entusiasmo. Quel codice che è nel nostro albero dei sorgenti che si trova sotto la GNU General Public License (GPL) ( o sotto la GNU Library General Public License (LGPL) ( viene distribuito con dei fronzoli in più, sebbene si tratti di un accesso più restrittivo, piuttosto che l esatto contrario di quello che pensiamo noi. Date le generali complessità che possono scaturire dall utilizzo commerciale di software GPL, consigliamo di rimpiazzare tale software con prodotti rilasciati sotto la più rilassata FreeBSD license ( quando possibile La FreeBSD license ha qualche restrizione? Certo. Quelle restrizioni non controllano come usi il codice, piuttosto come tratti il progetto FreeBSD stesso. Se hai delle serie preoccupazioni riguardo la licenza, leggi la licenza attuale ( Per i più curiosi, la licenza può essere riassunta in questo modo. Non assumerti i meriti per aver scritto questo. Non farci causa se si rompe o non funziona. 1

9 Capitolo 1. Introduzione a FreeBSD 1.4. Può FreeBSD rimpiazzare il mio attuale sistema operativo? Per molte persone sì. Ma questa domanda non ha una risposta generica. Molte persone non usano realmente un sistema operativo. Usano applicazioni. Sono le applicazioni che in realtà usano il sistema operativo. FreeBSD è disegnato per fornire un ambiente robusto e pienamente attrezzato per le applicazioni. Supporta una varietà infinita di Browser per internet, Suite per ufficio, client di posta elettronica, programmi di grafica, ambienti di programmazione, server di rete, e qualsiasi altra cosa si potrebbe volere. Molte di queste applicazioni possono essere utilizzate attraverso l uso dei Ports ( Se hai bisogno di una applicazione che è disponibile solo su un determinato sistema operativo, non puoi rimpiazzare quel sistema operativo. La possibilità è che ci sia un applicazione simile per FreeBSD. Se vuoi un server solido per internet o per il tuo ufficio, una workstation su cui fare affidamento, o solo la possibilità di lavorare senza interruzioni, FreeBSD farà certamente al caso tuo. Molti possessori di computer al Mondo, inclusi sia novizi che esperti amministratori UNIX usano FreeBSD come loro unico sistema operativo. Se stai migrando a FreeBSD da qualche altro tipo di ambiente UNIX, di sicuro saprai molte delle cose che ti serve sapere. Se il tuo background è un sistema operativo grafico, come Windows e versioni non recenti di Mac OS, preparati ad investire tempo per imparare il modo di fare le cose tipico di UNIX. Questo documento e il FreeBSD Handbook ( in parte tradotto in italiano ( rappresentano eccellenti punti di partenza Perché è chiamato FreeBSD? Può essere usato gratuitamente, anche da utenti commerciali. I sorgenti di tutto il sistema operativo sono liberamente a disposizione, e sono state poste le minori restrizioni possibili sul loro uso, sulla loro distribuzione e sulla loro incorporazione in altri lavori (commerciali o non commerciali). Chiunque abbia un miglioramento o la soluzione ad un problema od errore del sistema è libero di sottoporre il proprio codice e far sì che venga aggiunto all albero dei sorgenti. (I cambiamenti sono soggetti a una o due ovvie revisioni). Vale il caso di notare che la parola free qui viene considerata in due modi, uno che significa senza costi, l altro puoi farci ciò che vuoi. A parte una o due cose che non puoi fare con il codice di FreeBSD, per esempio far finta di averlo scritto tu, puoi realmente farci tutto quello che vuoi Qual è l ultima versione di FreeBSD? A questo punto nello sviluppo di FreeBSD, ci sono due rami di sviluppo paralleli; le release vengono tratte da tutti e due i rami. Le release della serie 4.X vengono prese da -STABLE e le 5.X da -CURRENT. La versione 5.2-RELEASE (ftp://ftp.freebsd.org/pub/freebsd/releases/i386/5.2-release/) è l ultima release del ramo -CURRENT; è stata rilasciata il 12 Gennaio La versione 4.9-RELEASE 2

10 Capitolo 1. Introduzione a FreeBSD (ftp://ftp.freebsd.org/pub/freebsd/releases/i386/4.9-release/) è l ultima release del ramo -STABLE; è stata rilasciata il 28 Ottobre 2003 In parole povere, -STABLE è mirata agli ISP, agli utenti aziendali, o qualsiasi utente che voglia stabilità e un minimo numero di modifiche alle nuove (e potenzialmente instabili) features dell ultimo sviluppo di -CURRENT. Le release possono arrivare da ciascuno dei due rami, ma -CURRENT dovrebbe essere usata solo se sei sicuro di essere pronto per la maggior volatilità (relativamente a -STABLE). Le release vengono fatte a distanza di pochi mesi l una dall altra. Sebbene molte persone stanno molto più aggiornate rispetto alle release grazie ai sorgenti (guarda le domande su FreeBSD-CURRENT e FreeBSD-STABLE), farlo è più una scelta, poichè i sorgenti sono un bersaglio mobile. Più informazioni sulle release di FreeBSD possono essere reperite sulla Pagina di Release Engineering ( sul sito web di FreeBSD Che cos è FreeBSD-CURRENT? FreeBSD-CURRENT ( è la versione di sviluppo del sistema operativo, che nel suo corso diverrà 6.0-RELEASE. Come tale, è di interesse solamente agli sviluppatori che lavorano sul sistema e agli hobbisti considerati duri a morire. Guarda la sezione relativa ( nell handbook ( per dettagli su come utilizzare -CURRENT. Se non hai familiarità con il sistema operativo o non sei capace di capire la differenza tra un problema momentaneo e un problema reale, non dovresti utilizzare FreeBSD-CURRENT. Questo ramo spesso si evolve velocemente e può accadere che non lo si possa compilare per giorni. Ci si aspetta che la gente che usa FreeBSD-CURRENT sia capace di analizzare qualsiasi problema e riportarli se si capisce che sono errori piuttosto che scatti. Domande come make world produce un errore a proposito dei gruppi sulla mailing list -CURRENT potrebbero non essere viste di buon occhio. Ogni giorno, degli snapshot ( di release vengono creati in base allo stato corrente dei rami -CURRENT e -STABLE. Le distribuzioni degli snapshot occasionali vengono resi disponibili. Gli obiettivi di ciascuno snapshot sono: Per provare l ultima versione del software di installazione. Per dare l opportunità a persone che vorrebbero utilizzare -CURRENT o -STABLE, ma non hanno tempo o banda disponibile per seguirle su base giornaliera, un sistema facile e veloce per poterle installare sul proprio sistema. Per preservare un punto fisso di riferimento per il codice in questione, solo in caso rompessimo qualcosa in futuro. (Sebbene CVS evita che qualcosa di così orribile possa accadere) Per essere sicuri che tutte le nuove funzionalità e tutte le correzioni al codice possano avere il maggior numero possilbe di potenziali tester. Non c è nessuna pretesa che alcuno snapshot di -CURRENT possa essere considerato di qualità di produzione per qualsiasi scopo. Se vuoi avere un sistema stabile e completamente testato, devi rimanere con le release, oppure puoi utilizzare gli snapshot di -STABLE. Le release di snapshot sono disponibili direttamente da current.freebsd.org/pub/freebsd/ (ftp://current.freebsd.org/pub/freebsd/) per la 5.2-CURRENT, e releng4.freebsd.org 3

11 Capitolo 1. Introduzione a FreeBSD (ftp://releng4.freebsd.org/pub/freebsd) per gli snapshot di 4-STABLE. Gli snapshot di 3-STABLE non vengono più prodotti nel momento in cui viene scritto questo documento. Gli snapshot vengono generati, in genere, giornalmente per tutti i rami di sviluppo su cui si lavora al momento Qual è il concetto di FreeBSD-STABLE? Quando FreeBSD venne rilasciato, lo sviluppo di FreeBSD si divise in due parti. Una parte (o ramo) chiamata -STABLE e una chiamata -CURRENT. FreeBSD-STABLE è intesa per gli Internet Service Provider e altre imprese commerciali per le quali cadute improvvise o features sperimentali sono cose indesiderate. Riceve solamente le soluzioni già testate e altri piccoli cambiamenti incrementali. FreeBSD-CURRENT, invece, è una linea interrotta che ha portato a (e oltre) fin dai tempi in cui la versione 2.0 venne rilasciata. Se una ASCII art può aiutare a capire, ecco come sarebbe: 2.0 [2.1-STABLE] *BRANCH* > 2.1 -> > > [2.1-STABLE fine] [2.2-STABLE] *BRANCH* > RELEASE -> > > > [fine] 3.0-SNAPs (inizio Q1 1997) 3.0-RELEASE (Ott 1998) [3.0-STABLE] *BRANCH* 3.1-RELEASE (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> [4.0-STABLE] *BRANCH* 4.0 (Mar 2000) -> 4.1 -> > 4.2 -> [SNIP] -> 4.9 \ / + [5.2-RELEASE] continua... Il ramo 2.2-STABLE è stato ritirato con la release Il ramo 3-STABLE è finito con la release 3.5.1, la release finale della serie 3.X. Le uniche modifiche che verranno effettuate su questi rami saranno, per la maggior parte, correzioni a problemi di sicurezza. 4-STABLE è il ramo su cui si sta sviluppando in questo momento. L ultima release della serie 4-STABLE è la 4.9-RELEASE 4

12 Capitolo 1. Introduzione a FreeBSD Il ramo 5-CURRENT procederà lentamente verso 5.3-RELEASE ed oltre. Leggi "Cos è FreeBSD-CURRENT" (Sezione 1.7) per avere maggiori informazioni su questo ramo Quando vengono fatte le release di FreeBSD? Release Engineering rilascia una nuova versione di FreeBSD in media ogni quattro mesi. Le date di rilascio vengono annunciate tempo prima, cosicchè la gente che lavora al sistema possa sapere quando il proprio progetto deve essere finito e testato. Un periodo di test precede ogni release, in modo da assicurarsi che l aggiunta di nuove features non comprometta la stabilità della release. Molti utenti pensano che questa premura sia una delle parti migliori di FreeBSD, sebbene aspettare che tutte le novità migliori arrivino su -STABLE possa essere un pò frustrante. Altre informazioni sul processo di release engineering possono essere trovate sulla pagina di release engineering ( all interno del sito web di FreeBSD. Per coloro che volessero più divertimento, degli snapshot binari vengono creati giornalmente, come precedentemente detto Chi è responsabile per FreeBSD? Le decisioni chiave che riguardano il progetto FreeBSD, come la direzione generale da seguire e chi è abilitato ad aggiungere codice all albero dei sorgenti, vengono prese dal core team ( composto da 9 persone. C è un team più grande, composto da circa 200 committers ( che sono autorizzati a fare dei cambiamenti direttamente all albero dei sorgenti di FreeBSD. Ad ogni modo, cambiamenti secondari vengono decisi anticipatamente sulle mailing list ( e non ci sono restrizioni su chi possa prendere parte alla discussione Dove posso trovare FreeBSD? Ogni release significativa di FreeBSD è disponibile via FTP anonimo dal sito FTP di FreeBSD (ftp://ftp.freebsd.org/pub/freebsd/): Per la release corrente del ramo 3.X-STABLE, RELEASE, guarda la directory RELEASE (ftp://ftp.freebsd.org/pub/freebsd/releases/i386/3.5.1-release/). L ultima release del ramo 5.X, 5.2-RELEASE può essere trovata nella directory 5.2-RELEASE (ftp://ftp.freebsd.org/pub/freebsd/releases/i386/5.2-release/). L ultima release di 4-STABLE, 4.9-RELEASE può essere trovata nella directory4.9-release (ftp://ftp.freebsd.org/pub/freebsd/releases/i386/4.9-release/). Glisnapshot 4.X (ftp://releng4.freebsd.org/pub/freebsd/) vengono fatti giornalmente. 5

13 Capitolo 1. Introduzione a FreeBSD Gli snapshot 5-CURRENT (ftp://current.freebsd.org/pub/freebsd/) vengono fatte giornalmente per il ramo -CURRENT pur essendo utili solo a sviluppatori e testers. Informazioni su come ottenere FreeBSD su CD, DVD, ed altri supporti, possono essere reperite nell handbook ( Come posso preparare un mirror di FreeBSD? Informazioni su come settare un mirror di FreeBSD possono essere reperite nell articolo Mirroring FreeBSD ( non ancora tradotto in italiano Come posso avere accesso al database dei Problem Report? Il database dei Problem Report può essere interrogato (o vi si può sottomettere una informazione) usando le due interfacce, di sottomissione ( e query ( Il comando send-pr(1) può essere utilizzato per spedire dei problem report usando la posta elettronica. Prima di spedire un problem report si prega di leggere Writing FreeBSD Problem Reports ( un articolo su come scrivere dei buoni problem reports, non ancora tradotto in italiano Come divento un mirror web di FreeBSD? Ci sono diversi modi per fare il mirror delle pagine Web. Puoi scaricare i files formattati dal server CVSup di FreeBSD usando l applicazione net/cvsup. Il file /usr/share/examples/cvsup/www-supfile contiene un esempio di file di configurazione per i mirror web. Puoi scaricare i sorgenti del sito web da qualsiasi FTP server di FreeBSD usando il tuo client FTP preferito. Ricordati che devi compilare questi sorgenti prima di pubblicarli. Comincia il download da ftp://ftp.freebsd.org/pub/freebsd/freebsd-current/www Quali altre fonti di informazione ci sono? Controlla la lista della documentazione ( sul sito web principale di FreeBSD ( oppure consulta il sito del GUFI ( il Gruppo Utenti FreeBSD Italiano. 6

14 Capitolo 2. Documentazione e Supporto 2.1. Che bei libri ci sono che parlano di FreeBSD? Il progetto produce una ampia gamma di documentazione, disponibile online all indirizzo: La stessa documentazione è disponibile come package, che puoi facilmente installare sul tuo sistema FreeBSD. Altri dettagli sui packages di documentazione possono essere trovati nei prossimi paragrafi. In aggiunta, la Bibliografia alla fine di questa FAQ, e quella dell handbook refernziano alcuni libri raccomandati. 7

15 II. Domande e Risposte Nei prossimi capitoli si trovano le risposte alle domande che un utente alle prime armi, ma anche un amministratore già esperto potrebbero porsi utilizzando FreeBSD

16 Capitolo 3. Amministrazione del Sistema Sarebbe stato difficile cominciare con qualcosa di diverso dall Amministrazione di Sistema, perché è praticando questa sana attività che ci si pone domande più o meno serie Come posso usare le accentate in console? Per utilizzare le lettere accentate in console, occorre impostare in /etc/rc.conf i caratteri che andranno caricati all avvio del sistema: font8x8="iso15-8x8" font8x14="iso15-8x14" font8x16="iso15-8x16" Inoltre potrebbe essere necessario esportare la variabile d ambiente TERM con valore cons25l1 e questo può essere fatto sia da ogni utente nel file di configurazione della propria shell, sia l amministratore di sistema tramite /etc/ttys. Un altro sistema consiste nel creare nella propria home directory il file.inputrc ed editarlo nel seguente modo: set meta-flag on set convert-meta off set output-meta on Eseguiamo nuovamente il login e potremo ora usare le vocali accentate anche in console. Questo ultimo metodo funziona però solo con la shell bash e le versioni di FreeBSD precedenti alla 5.x Come posso eseguire un comando a una determinata ora di un determinato giorno? Può capitare la necessità di dover eseguire un comando in uno specifico momento della giornata, quando magari non saremo nei pressi della nostra macchina ma dovremmo compiere un importante operazione. Il comando at(1) serve proprio a questo, ed ha una sintassi molto semplice: at {ORA} {GIORNO} % at 0:00 14/02/2003 mail $indirizzofidanzata < ~/sanvalentino.txt Per uscire dalla modalità di inserimento comandi basta premere CTRL+D. Per verificare la coda di comandi che abbiamo impostato con at(1), possiamo usare il comando atq(1). 9

17 Capitolo 3. Amministrazione del Sistema 3.3. Il prompt di default della shell è bruttino, come posso cambiarlo? Cambiando la variabile d ambiente PS1 è possibile modificare il prompt della shell. Ci sono alcuni caratteri di escape che possono essere utili per personalizzare ulteriormente il prompt. Questi sono solo alcuni per la shell bash: \u : l user corrente \h : l hostname \w : la directory corrente \@ : l ora corrente, in formato 12H am/pm \t : l ora corrente, in formato 24-ore HH:MM:SS \d : la data, in formato Giorno della Settimana Mese Data Per la shell tcsh, ovvero quella di default, è necessario impostare la variabile prompt, che accetta i seguenti caratteri di escape: %n : l user corrente %m : l hostname %/ o %~ : la directory corrente %@ : l ora corrente in formato 12H am/pm %T : l ora corrente in formato 24-ore HH:MM "%d %w %D" : sequenza per la data corrente in formato Giorno della Settimana Mese Data Per ulteriori sequenze di escape, le man page delle due shell, bash(1) e tcsh(1), sono più che esaustive.un PS1 tipico è user@hostname$ corrisponde a \u@\h$ in bash e a %n@%m$ per quanto riguarda la variabile prompt di tcsh. A volte può essere utile visualizzare l ora o la directory corrente quindi un prompt adatto sarebbe [ora][directory corrente]$ che è la risultante di [\@][\w]$ e di [%@][%~]$ rispettivamente in bash e in tcsh. Per la shell sh(1) non esistono caratteri di escape, tuttavia è possibile modificare il prompt agendo sempre sulla variabile PS1, assegnandole quindi qualsiasi valore si voglia anche facendo uso di espressioni come in ~paperoga% exportps1=$(/usr/bin/whoami)$; paperoga$ 10

18 Capitolo 3. Amministrazione del Sistema per settare il prompt con il nome utente attuale Come posso fare eseguire un comando ogni determinato lasso di tempo? Il comando crontab(1) è utile per eseguire un comando o una serie di comandi a ogni determinato periodo. Per inserire comandi nella lista occorre lanciare %crontab -e che ci consente di editare un file con l editor definito dalla variabile d ambiente $EDITOR (di default questa variabile punta a vi(1). Le righe di questo file devono avere il seguente formato: minuti ore giorno del mese mese giorno_della_settimana comando Con questa riga il comando viene eseguito ogni e solo ogni Martedì 1 gennaio alle 12,15: Jan Tue echo "buon anno! È possibile usare anche il carattere jolly *. Ad esempio: 15 * * * * /usr/local/bin/fetchmail esegue il comando ogni 15 minuti di un ora: alle 0:15, 1:15 ecc. Per eseguire il comando ogni quarto d ora, la linea del file dovrà essere: 00,15,30,45 * * * * /usr/local/bin/fetchmail Per visualizzare il file di crontab(1) lanciamo % crontab -l 11

19 Capitolo 3. Amministrazione del Sistema 3.5. Esiste un modo per evitare di scrivere un intero comando molto lungo ogni volta? Gli alias sono delle scorciatoie per risparmiare tempo associando una breve parola a un comando molto lungo. alias(1) serve proprio a questo e la sua sintassi è: % alias ALIAS= COMANDO dove COMANDO è il comando con le sue opzioni che vogliamo associare ad ALIAS. Gli alias settati in questo modo però sono validi solo per la sessione corrente e per definirli una volta per tutte, basta aggiungerli nel file di configurazione della propria shell Come posso aggiornare il sistema? FreeBSD permette di scaricare i sorgenti aggiornati e di ricompilare tutto il sistema base e il kernel in modo da avere un sistema perfettamente aggiornato. L utility fondamentale per compiere quest operazione si chiama cvsup(1) ed è compreso nell albero dei ports sotto net/cvsup-without-gui. Abbiamo la possibilità di installarlo sia con i ports sia con i packages, opzione sicuramente più veloce, dal momento che cvsup-without-gui dipende da pacchetti che impiegano abbastanza tempo a compilarsi. Mentre viene effettuata l installazione, cominciamo a editare i file di configurazione per essere subito operativi. Creiamo la directory /usr/local/etc/cvsup e, aperto il nostro editor preferito, cominciamo a scrivere il file cvsup.stable: *default host=cvsup.it.freebsd.org *default prefix=/usr *default release=cvs tag=releng_5 *default delete use-rel-suffix *default umask=0022 *default compress src-all Questo file serve per aggiornare i sorgenti del sistema base, occupiamoci ora di quello per aggiornare i ports, cvsup.ports: *default host=cvsup.it.freebsd.org *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix *default umask=0022 *default compress ports-all Si nota subito che è quasi identico al precedente, salvo per l ultima riga che è quella che identifica quale "collezione" di fil3 vogliamo scaricare, e per il valore di tag=, la cui funzione spiegheremo più oltre. Per aggiornare anche la documentazione creiamo un file cvsup.docs uguale ai precedenti eliminando solo la riga *default umask=0022 e sostituendo l ultima riga con doc-all. 12

20 Capitolo 3. Amministrazione del Sistema Le uniche altre righe importanti da tenere in considerazione sono: *default host=cvsup.it.freebsd.org che identifica l host da cui vogliamo scaricare i sorgenti (l elenco completo dei mirror è disponibile all indirizzo ), e *default release=cvs tag=, dove viene indicato che ramo di sviluppo vogliamo seguire nell aggiornamento del sistema. Come spiegato alla domanda "Qual è l ultima versione di FreeBSD?" (Sezione 1.6), FreeBSD viene sviluppata in settori diversi e ognuno può scegliere quale ramo seguire a seconda delle preferenze personali e dell ambiente di utilizzo della macchina. Nel nostro esempio abbiamo scelto di seguire il ramo di sviluppo -STABLE, specificando quindi RELENG_5 per quanto riguarda i sorgenti, mentre per i ports e i documenti abbiamo messo. (punto), che identifica l ultima versione possibile per quanto riguarda questi due componenti; se avessimo specificato. (punto) anche per i sorgenti avremmo seguito il ramo di sviluppo -CURRENT, molto più instabile, che richiede maggiore esperienza e capacità di risolvere i problemi per contro proprio. La spiegazione dettagliata di ogni riga dei file di configurazione di CVSup si trova in una pagina dell handbook di FreeBSD ( Se eseguissimo l aggiornamento del sistema con solo questi file, otterremmo una grande quantità di materiale di cui non faremmo utilizzo, come ad esempio i ports localizzati in lingue asiatiche o differenti dall italiano e inglese; per evitare questo, creiamo la directory /usr/local/etc/cvsup/sup e il file /usr/local/etc/cvsup/sup/refuse: ports/arabic/* ports/chinese/* ports/french/* ports/german/* ports/hebrew/* ports/hungarian/* ports/japanese/* ports/korean/* ports/russian/* ports/polish/* ports/portuguese/* ports/russian/* ports/ukrainian/* ports/vietnamese/* doc/bn* doc/da* doc/de* doc/el* doc/es* doc/fi* doc/fr* doc/ja* doc/no* doc/nl* doc/pl* doc/po* doc/pt* doc/ru* doc/sr* doc/tr* doc/zh* 13

21 Capitolo 3. Amministrazione del Sistema Un ultimo file è necessario per poter finalmente compiere l aggiornamento del sistema: make.conf, da posizionare in /etc: USA_RESIDENT=NO SUP_UPDATE=yes SUP=/usr/local/bin/cvsup SUPFLAGS= -g -L 2 SUPFILE=/usr/local/etc/cvsup/cvsup.stable PORTSSUPFILE=/usr/local/etc/cvsup/cvsup.ports DOCSUPFILE=/usr/local/etc/cvsup/cvsup.docs SUPHOST=cvsup.it.freebsd.org XFREE86_VERSION=4 Cosa significa ogni riga di questo file? La prima rende noto al server che noi non siamo residenti negli Stati Uniti, cosicchè i sorgenti di quei programmi che per motivi legali non possono uscire dagli USA, non verranno scaricati sul nostro computer. SUP_UPDATE indica che vogliamo servirci del sistema CVSup per l aggiornamento dei sorgenti. La riga seguente segnala il percorso completo dell eseguibile cvsup. Dopo la specificazione delle flag da passare a cvsup, troviamo le locazioni dei file di configurazione, rispettivamente quello dei sorgenti, dei ports e della documentazione, infine la versione di XFree86 che vogliamo usare, tipicamente la 4. Portiamoci ora in /usr/src ed eseguiamo # make update per aggiornare i sorgenti, i ports e la documentazione. Qualora volessimo aggiornare solo i ports, eseguiamo la stessa operazione da /usr/ports. Ora i nostri sorgenti sono equivalenti a quelli sul CVS di FreeBSD ma per avere il sistema "up to date" dobbiamo ricompilare world (ovvero il sistema base) e kernel (il nocciolo del sistema operativo) come spiegato alla domanda "Come ricompilo il sistema?" (Sezione 3.7) 3.7. Come ricompilo il sistema? Capita spesso di voler ricompilare il sistema base e il kernel e i motivi sono i più disparati: si passa dal volerli semplicemente aggiornare per motivi di sicurezza o per poter usufruire delle ultime versioni di alcuni driver fino al voler semplicemente ricompilare perché si è aggiunta un opzione nel kernel e vogliamo verificarne il funzionamento. La prima cosa da fare è impostare le opzioni per del compilatore così da ottenere un sistema ottimizzato per le caratteristiche della nostra macchina; editiamo /etc/make.conf (le seguenti righe vanno aggiunte a quelle eventualmente già presenti): CFLAGS= -O2 -pipe #CXXFLAGS+= -fmemoize-lookups -fsave-memoized <= temporaneamente non supportata COPTFLAGS= -O2 -pipe La compilazione si svolge in più fasi: 14

22 Capitolo 3. Amministrazione del Sistema 1. aggiornamento dei sorgenti (opzionale) 2. lettura del file UPDATING 3. compilazione del world 4. compilazione del kernel 5. installazione del kernel 6. reboot in single-user mode 7. installazione del world 8. aggiornamento dei file di configurazione 9. riavvio del sistema Cominciamo a vederli uno per uno. 1. Vedere la domanda "Come posso aggiornare il sistema?" (Sezione 3.6) 2. Importante è anche la lettura del file /usr/src/updating che contiene alcune informazione riguardo gli aggiornamenti dell albero dei sorgenti di FreeBSD e contiene indicazioni quali la necessità di aggiungere utenti, gruppi o altre opzioni per avere un sistema funzionante. 3. Per compilare il world entriamo in /usr/src e lanciamo # make buildworld Il tempo di compilazione varia a seconda della frequenza del processore e della quantità di memoria del sistema. 4. La compilazione del kernel non è diversa da quella del word, in quanto è sufficiente lanciare, sempre da /usr/src # make buildkernel Non viene qui trattata la configurazione del kernel, perché un argomento che dipende molto dalle esigenze personali di ognuno. Si veda il capitolo Configuring the FreeBSD Kernel ( dell handbook per maggiori informazioni. 5. Dopo aver effettuato la compilazione del world e del kernel si passa alla fase di installazione, che avviene in ordine contrario rispetto alla compilazione: # make installkernel Verranno così installati il file del nuovo kernel ovvero /boot/kernel/kernel, i nuovi moduli sotto /boot/kernel/, inoltre il vecchio kernel sarà rinominato in boot/kernel.old/kernel. AvvertimentoNelle versioni precedenti alla 5.0-RELEASE, il kernel è /kernel, i moduli si trovano in /modules e il kernel precedente è /kernel.old. 15

23 Capitolo 3. Amministrazione del Sistema 6. Prima di installare il world è necessario passare in single-user mode, ovvero in modalità utente singolo, con i soli servizi di base attivi e la possibilità per il solo utente root di usare il sistema. Per passare in single user mode, occorre eseguire il comando # shutdown now 7. Naturalmente avere un kernel aggiornato non è sufficiente e anzi la discrasia tra kernel e world porta spesso gravi problemi. Per installare il sistema base: # make installworld 8. Il processo di sviluppo di FreeBSD coinvolge anche i file di configurazione, aggiungendo o togliendo opzioni, utenti, gruppi. È importante, per avere un sistema aggiornato in maniera corretta, che anche questi file vengano installati; tuttavia molti di questi sono oggetto di modifiche e personalizzazioni da parte di ognuno per ottimizzare il sistema ed è quindi necessario prestare molta attenzione nella scelta dei file da aggiornare. Fortunatamente FreeBSD mette a disposizione mergemaster(8), uno script di shell che, utilizzando /usr/src/etc/makefile crea un ambiente temporaneo e lo riempe dei nuovi file di configurazione; fatto ciò li confronta uno ad uno con quelli installati nel nostro sistema e ci chiede se vogliamo installare il nuovo file, lasciare intoccato quello installato oppure effettuare un merge dei due file, ovvero una loro fusione. Lanciamo quindi: # mergemaster -cvs (mergemaster(8) ha moltissime opzioni, la man page è il luogo dove trovare la spiegazione di ognuna). Ora avremo lo schermo diviso in due parti uguali orizzontalmente: in alto troveremo il contenuto del file attuale, in basso quello del nuovo file di configurazione. Ecco quindi che avremo la possibilità di scegliere cosa fare del nuovo file: Use d to delete the temporary./etc/mail/mailer.conf Use i to install the temporary./etc/mail/mailer.conf Use m to merge the temporary and installed versions Use v to view the diff results again È chiaro a cosa corrisponde ogni opzione. Una sola nota sull opzione m: se scegliamo questa possibilità, lo schermo si dividerà verticalmente e a sinistra troveremo il file attuale, a destra il nuovo e per ogni differenza tra i due potremo scegliere se tenere la vecchia o la nuova riga corrispondente, selezionando tramite la pressione di r per la parte destra (quella nuova) e l per la parte sinistra, ovvero quella attualmente installata, per finire e installare il file così fatto, premiamo i. La procedura di confronto si ripete per ogni file del sistema che abbiamo cambiato o è stato modificato nella versione CVS e potrebbe durare un po di tempo, anche perché è necessario prestare molta attenzione: un errore in questa fase potrebbe portare alcuni problemi. 9. Alla fine di tutto, per poter utilizzare il sistema aggiornato riavviamo la macchina con # reboot Ora il nostro sistema è aggiornato e lo si può verificare dall risultato di # uname -a FreeBSD pdp.paperopoli 4.8-STABLE FreeBSD 4.8-STABLE #4: Wed Jul 23 09:32:03 CEST 2003 root@pdp.paperopoli:/usr/obj/usr/src/sys/deposito i386 16

24 Capitolo 3. Amministrazione del Sistema La risposta a eventuali problemi si trova alla domanda "Ho ricompilato il sistema ma al riavvio ci sono dei problemi. Cosa posso fare?" (Sezione 3.8) Ho ricompilato il sistema ma al riavvio ci sono dei problemi. Cosa posso fare? I problemi che si possono riscontrare al riavvio del sistema dopo aver effettuato la ricompilazione possono essere di vario genere: si va dalla mancanza di qualche supporto fondamentale nel kernel a qualche errore durante la fase di mergemaster. La via più comoda e veloce per risolvere questi problemi è il caricamento del kernel precedente e una nuova ricompilazione del sistema dopo aver accertato la causa del danno che sarà da rilevarsi quindi o nel file di configurazione del kernel o nei file di configurazione del sistema, e in quest ultimo caso è sufficiente rieffettuare il mergemaster o cercare un eventuale errore di battitura in un file di configurazione quale /etc/rc.conf Per caricare il kernel precedente dobbiamo, al boot del sistema, effettuare i seguenti passi: Loading /boot/defaults/loader.conf /kernel text=0x161db8 data=0x218ac+0x223fc syms=[0x4+0x x4+0x243e4] /modules/splash_bmp.ko text=0x10f9 data=0xc8+0x66c syms=[0x4+0x420+0x4+0x230] /modules/vesa.ko text=0x2330 data=0xea0+ox23c syms=[0x4+0x7a0+0x4+0x585] Hit [Enter] to boot immediately, or any other key for command prompt. Invio unload load /boot/kernel.old/kernel boot Fatto questo, il sistema caricherà il kernel precedente (funzionante) e potremo ora risolvere l errore come spiegato sopra Come posso ottenere i sorgenti relativi a una data precisa? L utilizzo di CVS come base per il sistema di aggiornamento di FreeBSD consente di effettuare un "passo indietro" nello sviluppo del sistema ed ottenere l albero dei sorgenti esattamente com era in una certa data. Prendiamo il file di configurazione di cvsup per i sorgenti, /usr/local/etc/cvsup/cvsup.stable, e cambiamo la riga: *default release=cvs tag=releng_5_2 in *default release=cvs tag=releng_5_2 date= I numeri divisi da punti significano che vogliamo ricevere l albero dei sorgenti com era in quel momento esatto. Come è intuibile, il formato è il seguente anno.mese.giorno.ora.minuti.secondi. Naturalmente si possono 17

25 Capitolo 3. Amministrazione del Sistema ottenere anche i ports e i doc relativi ad un certo istante, è sufficiente modificare i file di configurazione corrispondenti Come mai ogni 497 giorni uptime(1) riazzera il conteggio dei giorni? Sulle macchine a 32 bit, ogni 497 giorni il conteggio dell uptime viene riazzerato. Ciò è dovuto all architettura stessa della macchina e al fatto che il sistema operativo registra l uptime in jiffy 1 in una variabile a 32 bit e quindi risulta la seguente equazione: 2 32 (100 jiffy 60 secondi 60 minuti 24 giorni) = ovvero: il numero massimo contenibile da una variabile a 32 bit (2 32 ), diviso per i jiffy di un giorno, da come risultato circa 497 giorni. Nelle macchine con processore/i a 64 bit non si riscontra questo problema se non dopo anni di uptime Come formatto i floppy disk? La formattazione dei floppy disk si svolge in tre fasi: 1. Formattazione a basso livello 2. Scrittura dell etichetta 2 del floppy 3. Creazione del filesystem Procediamo con la prima fase: come utente root, dopo aver inserito un floppy nel lettore, lanciamo # fdformat -n /dev/fd0 L opzione -n evita il controllo dei settori del floppy dopo aver completato la formattazione. Ora dobbiamo editare l etichetta del floppy, specificando che si tratta di un floppy a 1440 Kb; per fare questo utilizzeremo disklabel(8): # disklabel -r -w /dev/fd0 fd1440 Ultima fase: la creazione del filesystem. Solitamente, il filesystem dei floppy disk è FAT12, quindi creiamo il filesystem nel seguente modo: # newfs_msdos -f 1440 /dev/fd0 L opzione -f serve naturalmente a specificare la capacità del dischetto. Molto utili nella gestione dei floppy sono gli mtools (emulators/mtools), una suite di comandi per interagire con periferiche removibili (e non) formattate con filesystem FAT senza bisogno di montarle, utilizzando la sintassi tipica dei comandi DOS Come aggiungo un utente a un gruppo? A volte può essere necessario che un utente appartenga a più gruppi; ad esempio occorre aggiungere un utente al gruppo wheel affinchè abbia la possibilità di elevarsi a root mediante su(1) oppure se abbiamo molti utenti, creare 18

26 Capitolo 3. Amministrazione del Sistema un nuovo gruppo utenti può semplificare l amministrazione degli stessi. Il file che contiene le informazioni riguardo ai gruppi è /etc/group, il cui formato è wheel:*:0:root Sono 4 campi separati da il segno ":". Il primo campo identifica il nome del gruppo, in questo caso wheel ovvero il gruppo a cui di default appartiene root e gruppo proprietario della maggior parte dei binari e dei file del sistema. Il secondo campo è la password di sistema che, a detta della stessa man di group(5) è molto raramente usata ed è infatti normalmente presente un asterisco per indicare l assenza di password. Successivamente troviamo il gid ovvero il numero identificativo corrispondente al gruppo. Infine ci sono i membri del gruppo, separati da virgole. Per aggiungere l utente paperino al gruppo wheel, dovremo quindi editare /etc/group nel seguente modo: wheel:*:0:root,paperino La presenza dei gruppi è utilissima quando, in sistemi con molti utenti, si vuole avere molta flessibilità nella gestione degli stessi, concedendo permessi e mettendo divieti a seconda del gruppo di appartenenza Come cambio l hostname? L hostname ovvero il nome della macchina, viene di solito settato all avvio del sistema tramite la lettura di un riga del file /etc/rc.conf, precisamente una linea simile alla seguente: hostname="deposito.pdp.paperopoli" Modificando la riga corrispondente, l hostname sarà cambiato al prossimo riavvio, mentre se vogliamo modificarlo "al volo", usiamo il comando hostname(1), usato anche per sapere l hostname attuale: # hostname paperino.peropoli # hostname paperoga.paperopoli # hostname paperoga.paperopoli; Una raccomandazione, probabilmente superflua: non usare nomi di host già esistenti per il proprio hostname, in quanto questo potrebbe creare problemi di vario genere Come faccio a sapere il mio indirizzo IP? Le informazioni riguardanti le interfaccie di rete vengono fornite dal comando ifconfig(8): # ifconfig fxp0: flags=8843<up,broadcast,running,simplex,multicast> mtu 1500 inet6 fe80::203:47ff:fee1:ccd4%fxp0 prefixlen 64 scopeid 0x1 inet netmask 0xffffff00 broadcast ether 00:03:47:e1:cc:d4 media: Ethernet autoselect (10baseT/UTP) status: active 19

27 lp0: flags=8810<pointopoint,simplex,multicast> mtu 1500 lo0: flags=8049<up,loopback,running,multicast> mtu inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet netmask 0xff ppp0: flags=8010<pointopoint,multicast> mtu 1500 sl0: flags=c010<pointopoint,link2,multicast> mtu 552 tun0: flags=8051<up,pointopoint,running,multicast> mtu 1492 inet > netmask 0xffffffff Opened by PID 71 Capitolo 3. Amministrazione del Sistema Senza spiegare il significato di ogni riga e ogni elemento in quanto sarebbe troppo lungo, notiamo subito che l indirizzo IP di ogni interfaccia che ne ha uno, è specificato nella riga che comincia con inet, quindi nel caso dell intefaccia tun0, tipicamente utilizzata per la connessione a Internet, l indirizzo IP si trova alla linea: inet > netmask 0xffffffff ed è Se vogliamo avere solo l indirizzo IP, dobbiamo concatenare una serie di comandi con i pipe: ifconfig tun0 awk {if ($1 == "inet") print$2;} L output di questo comando può essere passato come argomento per uno script.come ipcheck.py (net/ipcheck) o qualsiasi altro Come posso sapere quali utenti hanno effettuato il login ultimamente? A volte può essere utile sapere quali utenti hanno effettuato il login negli ultimi tempi, soprattutto se offriamo servizi SSH a parecchi utenti. Il comando usato per avere queste informazioni è last(1) che ha un output del tipo: paperoga ttyv2 Ven 14 Mar 21:51-21:33 (1+23:41) qui ttyp Ven 14 Mar 15:12-15:17 (00:05) qui ttyp Ven 14 Mar 15:01-15:08 (00:07) qui ttyp Ven 14 Mar 14:52-14:59 (00:07) gastone ttyv2 Ven 14 Mar 14:51-21:51 (07:00) archimede ttyv1 Gio 13 Mar 19:46 still logged in qua ttyv0 Gio 13 Mar 19:46 still logged in La prima colonna da, com è facile intuire, il nome dell utente, la seconda indica il terminale al quale l utente si è collegato; quindi, qualora l utente abbia effettuato il login via rete, troviamo l indirizzo IP del pc da cui è partita la richiesta di login; la quarta colonna indica la data di login e quella di logout, mentre tra parentesi si trova la durata della connessione. last(1) ha moltissime opzioni, di cui la man page fornisce una accurata descrizione. 20