Continua la nostra ricerca dei tools utili per analizzare e controllare le reti. Dopo aver introdotto Bwmon, vediamo ora un tool davvero interessante, Wireshark . Questo è probabilmente il miglior analizzatore di rete disponibile, ed è stato implementato da un team che comprendeva i maggiori esperti mondiali del settore.
Il download e l’installazioni sono davvero banali, dunque non ci soffermeremo oltre. Una volta scaricata la versione del tool più indicata per il proprio sistema operativo, si esegue il file di setup scaricato e l’installazione prosegue senza ulteriori richieste.
Lanciato il programma, è possibile eseguire uno scan del sistema per rilevare tutte le interfaccie di rete presenti (LAN, Wireless, ecc.) e scegliere così quella al momento connessa e che vogliamo analizzare.
L’interfaccia di gestione si presenta in questo modo:
Il cerchio rosso indica il pulsante da premere per attivare il rilevamento delle interfaccie. Effettuata la scelta, il tool visualizza tutte le informazioni che transitano su tale interfaccia, pacchetto per pacchetto. Ci si rende subito conto della potena di Wireshark : è possibile analizzare molto in profondità, addirittura entrare nel pacchetto per controllare ogni parte costituente (Frame 1, IP, UDP, ecc.) .
Oltre che tool utile per i sistemisti, Wireshark può essere un’ottimo strumento didattico, viste le possibilità che offre. E’ sufficiente una prova per rendersi conto delle sue potenzialità, e consigliamo vivamente di analizzare almeno una volta la propria interfaccia di rete.
Per chi amministra server linux, può essere molto utile monitorare la larghezza di banda utilizzata, soprattutto per quelle macchine che gestiscono parecchi domini. Può succedere in questi casi, che vi siano dei picchi di banda, ed è molto importante capirne i motivi: ecco perchè è così importante conoscere ed imparare ad usare uno strumento come bwmon .
Questa utility legge i file /proc/net/dev e /proc/uptime per stampare a video la banda usata, anche determinati archi di tempo selezionati dall’utente, il valore massimo da quando è stato inizializzato il tool ed anche la media della banda utlizziata dall’ultimo reboot.
Il software necessario è reperibile al seguente link.
L’installazione è semplicissima e segue la classica compilazione. Per compilare, ci posizioniamo all’interno della cartella in cui abbiamo “unzippato” il file scaricato e digitiamo il comando make:
$ make
a questo punto possiamo installare il tool, digitando il comando:
$ make install
e bwmon è pronto per iniziare le sue analisi. Vi consigliamo di osservare l’help che fornisce il tool, raggiungibile con il comando bwmon -h:
$ ./bwmon -h
Linux Network Bandwidth Monitor $Revision: 1.3 $
by Kimmo Nupponen (kimmoon@users.sourceforge.net)
$Date: 2002/05/08 06:33:09 $
usage: ./bwmon [-b] [-h] [-a] [-m] [-u seconds]
-a Print bandwidth utiliasation in Kbytes rather than Kbits. The default
is to use Kbits
-a Print also average bandwidth since last boot per interface
-m Print maximum bandwidth since launch of this utility
-h Print this help message
-u Update timeout (integer value)
Use <space-bar> to refresh the screen before update timeout expires
Use ‘q’ or ‘Q’ to exit this utility
Questo è l’output che visualizzerà l’help. Ora possiamo finalmente iniziare le nostre analisi, appoggiandoci a questo comodo e preciso strumento.
Per chi amministra un server, è importante comprendere a fondo come dovrebbe essere configurato il proprio server di posta, soprattutto perchè in caso di problemi o guasti, deve essere in grado di intervenire e trovare la soluzione nel minor tempo possibile ( soprattutto se il server è una macchina aziendale e magari gestisce la posta della clientela ).
Sul web vi sono molte informazioni e documentazione sulla gestione del server di posta, ma la maggior parte dei tutorial è legato a configurazioni specifiche che molto spesso si discostano parecchio da quella che si sta implementando.
Con questa guida impareremo non solo a configurare un server di posta, ma anche come si gestisce l’utenza della posta senza l’ausilio di un pannello di hosting, in modo da comprendere totalmente i meccanismi che guidano la gestione delle mail.
Su un sistema operativo linux, andremo a configurare il server di posta Postfix, il server Courier-Imap e la webmail horde come interfaccia grafica per la visione delle mail.
Noi abbiamo effettuato le prove su un sistema OpenSuse 10.2, ma ciò che vedremo andrà benissimo per qualsiasi sistema operativo linux.
Requisiti
La prima cosa da fare è ovviamente installare tutti i pacchetti che ci servono. Per chi è alle prime armi, consigliamo di utilizzare i meccanismi messi a disposizione da ogni sistema linux per effettuare tali installazione, come yast o smart per OpenSuse 10.2 o yum per i sistema Debian.
Ecco quello che ci occorre:
Il server di posta Postix ( )
Il server imap Courier
La libreria courier-authlib-userdb del server imap Courier
La webmail Horde ( o quella che si preferisce, squirrelmail, ecc. )
Installati i pacchetti necessari, procediamo alla configurazione.
Configurazione
Inziamo con la configurazione del Postfix: ovviamente vi sono moltissime configurazione possibili, ognugno è libero di scegliere quella che preferisce e che meglio si adatta alle proprie esigenze. Qui è possibile vedere alcuni esempi sulle diverse configurazioni di base: noi implementeremo quella che nel Postfix viene chiamata Domini MailBox Virtuali : questa configurazione permette di utilizzare un elenco di utenti e le corrispondenti mailbox in modo assolutamente indipendente dagli utenti del sistema (per maggiori dettagli leggete il link sopra indicato).
Editiamo il file principale che gestisce la configurazione del Postifx, main.cf , che solitamente di trova nella cartella /etc/postix/main.cf e inseriamo queste direttive:
Analizziamo come sempre riga per riga le direttive che abbiamo scritto. La direttiva virtual_mailbox_domains serve per specificare al Postfix i domini per i quali intendiamo creare le mailbox. Nel nostro caso abbiamo un solo dominio, mio_dominio.com .
virtual_mailbox_base specifica il prefisso per il percorso di tutte le mailbox virtuali. I tre parametri successivi
sono molto importanti, perchè configurano il cuore del server di posta. Il primo, virtual_mailbox_maps, specifica il file che contiene l’elenco delle caselle di posta presenti nel dominio specificato (virtual_mailbox_domains), nel seguente formato:
user@mio_dominio.com user/
I seguenti due campi, virtual_uid_maps e virtual_gid_maps, sono riespettivamente userid e il groupid dell’utente che il delivery agent utilizza per scrivere nelle mailbox.
L’ultimo campo che rimane da vedere è il virtual_alias_maps : questo è da utilizzarsi quando tra le caselle specificate vi sono dei reindirizzamenti. Il formato è il seguente:
user@mio_dominio.com altro_user@altrodominio.com
in cui il primo elemento rappresenta l’origine, mentre il secondo rappresenta la destinazione, ovvero la casella di posta dove il messaggio per user@mio_dominio.com dovrà essere recapitato. Attenzione: quando modifichiamo il file /etc/postfix/virtual, è necessario eseguire il comando:
postmap /etc/postfix/virtual
affinchè le modfiche abbiamo effetto.
Creazione Utenti
Vediamo ora la procedura che bisogna eseguire dopo la configurazione del Postfix per creare effettivamente l’utenza mail: questo è il punto più importante dell’articolo, perchè in effetti non vi sono molte risorse disponibili al riguardo.
Inserisco la riga per la nuova casella di posta nel file di postfix /etc/postfix/virtual_mailbox:
nome.cognome@mio_dominio.com nome.cognome/
ovviamente al posto di nome.cognome è possibile utilizzre lo schema di gestione utenza che si preferisce.
E’ necessario ora rigenerare il file .db lanciando il comando:
postmap virtual_mailbox
Creaimo l’utenza imap(courier-auth), che viene scritta nel file /etc/authlib/userdb :
userdb nome.cognome@mio_dominio.com set uid=5000 gid=5000 home=/var/mailboxes mail=/var/mailboxes/nome.cognome
userdbpw -md5 | userdb nome.cognome@mio_dominio.com set systempw
makeuserdb
Il primo comando andrà specifica il nome utente e la rispettiva mailbox per il nuovo account di posta. Il secondo comando ci permette di assegnare una password per l’account in creazione, mentre il terzo e ultimo comando è necessario per scrivere nei relativi file rendendo così effettive le modifiche.
Per creare tali utenze, abbiamo usato la libreria libreria courier-authlib-userdb che ci siamo procurati durante la fase di installazione dei requisiti.
Per creare fisicamente (intendiamo le directory) le cartelle del nuovo utente è sufficiente che questo riceva un messaggio, sarà postfix stesso a crearle ed inserire il messaggio ricevuto nella giusta cartella. Nel caso in cui volessimo fare una prova, si può mandare una mail esterna (attraverso cioè una qualsiasi casella di posta funzionante) o interna (dal localhost tramite telnet o sendmail).Nel caso di telnet si procede nel seguente modo:S: telnet qualcheparte 25R: 220 qualcheparte Simple Mail Transfer Service ReadyS: HELO miohost
R: 250 miohostS: MAIL FROM:<Marco@miohost>R: 250 OK
S: RCPT TO:<Roberto@suohost>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah…
S: …etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221
dove:
* HELO tuohost
(dove tuohost e’ il nome del server che spedisce il messaggio.
Questo comando e’ usato per identificare il server mittente)
* MAIL tuoindirizzo (dove tuo indirizzo e’ il tuo indirizzo di posta elettronica. Questo comando inizia una transazione di posta dove i dati vengono consegnati ad una o piu’ caselle di posta)
* RCPT indirizzodestinatario (dove indirizzo destinatario e’ l’ indirizzo di posta elettronica del destinatario)
* DATA (questo comando e’ usato per definire il testo del messaggio. Un testo di una e-mail puo’ contenere solo i caratteri compresi nel set dei 128 caratteri dello standard ASCII. La fine del messaggio e’ indicata da una riga contenente esclusivamente la sequenza di caratteri “<CRLF>.<CRLF>” . In altre parole devi premere il tasto invio, digitare un punto e premere di nuovo il tasto invio)
* RSET (questo comando specifica che la transazione corrente deve essere interrotta)
* NOOP (questo comando indica che non deve essere eseguita alcuna azione, tranne quella che permette al ricevente di inviare una risposta di OK)
* QUIT (questo comando e’ usato per chiudere la connessione)
E le risposte piu’ comuni:
220 <dominio> Service ready
221 <dominio> Service closing transmission channel
250 Requested mail action okay, completed
354 Start mail input; end with <CRLF>.<CRLF>
421 <dominio> Service not available, closing transmission channel
450 Requested mail action not taken: mailbox unavailable [Es. mailbox occupata]
500 Syntax error, command unrecognized [Es. una riga di comando troppo lunga]
501 Syntax error in parameters or arguments
502 Command not implemented
550 Requested action not taken: mailbox unavailable
551 User not local; please try <indirizzo>
554 Transaction failed
Gestire un server, in particolare un server Linux, è un’attività che richiede parecchio lavoro e costante impegno. Per svolgere al meglio il proprio lavoro, soprattutto se si è responsabili di una macchina, è necessario seguire con attenzione gli aggiornamenti e le security patch rilasciate per il proprio sistama operativo, o per gli applicativi utilizzati.
Ma è ovviamente molto difficile avere tutto sotto controllo senza un ausilio “esterno”: ecco a cosa servono i tool come Tiger, Nmap e Nessus.
Questi tool hanno diverse caratteristiche interessanti, alcuni sono più precisi, altri più approfonditi, ma comunque hanno uno scopo in comune: permettere all’amministratore di rete di monitorare il proprio sistema e scoprire le vulnerabilità prima che sia troppo tardi.
Tiger e Nmap sono in effetti più semplici da installare ed utilizzare, ma è anche vero che non raggiungono la profondità di analisi e la precisione di Nessus.
Quest’ultimo è eseguibile su diversi sistemi operativi, tra i quali ci sono i seguenti:
Red Hat ES 3, ES 4, and ES 5 (i386 and x86-64)
Fedora Core 7 and 8
SUSE 9.3 and 10.0
Debian 4 (i386 and amd64)
FreeBSD 6.0
Solaris 9 and 10
Mac OS X 10.5
Windows 2000, XP, Server 2003, Server 2008, and Vista
Enterasys Dragon appliance running Dragon 7.2 or later
Anche gli altri due tool supportano diversi sistemi operativi, per questo motivo conviene leggere le rispettive documentazioni e le rispettive liste di plugin per capire quale sia il tool che meglio si addice all’analisi che vogliamo eseguire sul nostro sistema.
In particolare, i link a cui facciamo riferimento sono i seguenti:
Non proseguiamo con ulteriori spiegazioni, visto che la documenzione di ogni tool è veramente esauriente ed intuitiva. Ad ogni modo, rimaniamo come sempre a disposizione per chi incontrasse difficoltà nella configurazione, nell’installazione o nell’utilizzo.
L’ammistrazione da remoto di server linux può essere effettuata in diversi modi, ma il modo più sicuro ed efficiente è sicuramente l’utilizzo di SSH (Secure SHell), un protocollo che permette di stabilire una sessione remota cifrata ad interfaccia a linea di comando con un altro host.
Supponendo di utilizzare un PC con una qualche versione di linux installata per effettuare la connessione remota, tutto ciò che ci occorre è aprire una finestra di terminale o shell (per chi utilizza windows, è possibile sfruttare tool come Putty per effettuare connessioni remote). Siccome è buona norma non utilizzare l’utente root per lavorare, supporremo che utilizziamo nel nostro sistema di casa un utente diverso, ad esempio user-007. Dunque, aprendo il terminale, a linea di comando vedremo un qualcosa di simile:
$user-007\
Ora, normalmente in remoto ci si collega come utente root, ma allora sorge un problema: nel sistema di casa che utilizziamo per effettuare la connessione remota siamo identificati con l’utente user-007, mentre nell’host remoto vogliamo essere identificati come utente root.
Allora il comando che dobbiamo utilizzare è il seguente:
ssh root@indirizzo_ip
dove al posto di indirizzo _ip ovviamente andremo a mettere l’ip del server con il quale vogliamo effettuare la connessione remota. A questo punto ci verrà richiesta la password di sistema relativa all’utente remoto root: una volta inserita, entreremo nel server e potremo gestirlo da linea di comando proprio come facciamo con il nostro sistema linux locale.
Utilizzare PC domestici con linux per lavorare ed effettuare connessioni SSH è decisamente la cosa più sicura ed efficiente per ammistrare un server da remoto: vi sono tool per windows che permettono di utilizzare meccanismi che simulano o lavorano in modo simile ad un sistema linux per amministrare server linux, ma provate per esempio ad uplodare sul server una grande quantità di dati (ad esempio video o altro materiale multimediale). La differenza che potrete osservare parla da sola.
Spesse volte, soprattutto per chi deve gestire server Linux, diventa comodo automatizzare alcune attività: pensate al backup, per esempio. Invece di doversi preoccupare costantemente di salvaguardare i proprio dati, possiamo dimenticarci di questa preoccupazione andando a configurare l’operazione di backup come una operazione automatica che il sistema farà in un determinato momento di tempo, che ovviamente saremo noi a decidere.
Ma come è possibile fare questo? Utilizzando il daemon Cron.
Cron è un demone che appunto può essere utilizzato per eseguire operazioni pianificate in base all’ora, al giorno del mese, al mese, al giorno della settimana.
Ovviamente l’utilizzo di Cron presuppone che il sistema sia sempre accesso: nel caso in cui risulti spento quando una operazione è pianificata, semplicemente questa non verrà eseguita. Per poter utilizzare Cron (che il più delle volte è disponibile già in ogni installazione di Linux) occorre che sia installato il pacchetto RPM vixie-cron e il servizio crond sia in secuzione. Per verificare che il pacchetto sia installato e che il servizio sia in esecuzione è sufficiente digitare i seguenti comandi:
rpm -q vixie-cron
/sbin/service
Ma arriviamo al punto fondamentale, ovvero a come configurare le operazioni con Cron. Il file di configurazione più importante di Cron, /etc/crontab, contiente le seguenti righe:
Nelle prime quattro righe vengono inizializzate alcune variabili utilizzate per configurare l’ambiente in cui vengono eseguiote le operazioni di Cron. La variabile SHELL indica al sistema quale ambiente shell utilizzare (nell’esempio è inidicata la bash shell) mentre la variabile PATH definisce il percorso utilizzato per eseguire le operazioni. L’ouput di ogni operazione Cron viene inviato tramite e-mail al nome utente specificato nella variabile MAILTO: se quest’ultima viene lasciata vuota non viene inviata alcuna mail. La variabile HOME indica la directory home per l’esecuzioni di eventuali script o comandi.
Ogni riga del file /etc/crontab può essere vista come un’operazione e ha il seguente formato:
* * * * * command
- - - - -
| | | | |
| | | | ----- giorno della settimana (0 - 6) (domenica=0)
| | | ------- mese (1 - 12)
| | --------- giorno del mese (1 - 31)
| ----------- ora (0 - 23)
------------- minuti (0 - 59)
Come di intuisce facilmente dalla figura sopra, il primo campo si riferisce ai minuti, il secondo all’ora, il terzo al giorno del mese, ecc. : in questo modo possiamo stabilire con esattezza il momento temporale in cui vogliamo che una determinata operazione (nell’esempio command) venga eseguita. Gli intervalli tra parentesi indicano i range di valori possibili, tenendo presente che qualsiasi valore può essere sostituito con il simbolo *, che indica tutti i valori validi. Per esempio, un asterisco per il valore del mese indica di eseguire ilk comando specificato ogni mese in base alle restrizioni degli altri valori.
Con il trattino “-” invece indichiamo un intervallo di valori, metre con la virgola “,” creiamo una lista: con il simbolo “/” indichiamo invece valori che vogliamo escludere. Vediamo alcuni esempi:
1-4 (1,2,3,4)
3,4,5,7,12,56 (lista)
0-45/2 (escludiamo il valore 2 da tutti i valori comresi tra 0 e 45 )
*/4 (utilizzato nel campo del mese, indica che l’operazione verrà effettuata ogni 4 mesi)
Vediamo un esempio. Visto che tutti i crontab definiti dall’utente vengono salvati nella directory /var/spool/cron/ ed eseguiti usando il nome utente di chi li ha creati, per creare un crontab con un determinato utente bisogna connettersi al sistema con il nome di questo utente e digitare il seguente comando:
crontab -e
Si aprirà il crontab realtivo pronto per le modifiche e aperto con l’editor specificato nella varibile VISUAL o EDITOR. Una volta modificato il file, lo salviamo e usciamo (se utilizzaimo VI, in modalità comando digitiamo :wq). Una volta salvate la mofidiche al crontab, questo viene salvato in base al nome dell’utente e scritto nel file /var/spool/cron/nomeutente.
Il file /etc/crontab utilizza lo script run-parts per eseguire gli script nelle seguenti directory:
rispettivamente in base oraria, giornaliera, settimanal, mensile. Nel caso in cui volessimo eseguire un file di cron con una fase oraria diversa, allora dovremmo aggiungerla nella directory /etc/cront.d . Tutti i file di questa directory utilizzano la medesima struttura del file /etc/crontab .
Il deamon Cron controlla il file /etc/crontab, le directory /etc/cront.d e /var/spool/cron ogni minuto per rilevare eventuali modifiche. Nel caso in cui vengano rilevate delle modifiche, il file e le directory vengono ricaricati in memoria. Nota bene: se un file crontab viene modificato, non è necessario riavviare il daemon Cron.
ISPConfig è un pannello di controllo hosting opensource per server Linux. Attraverso questo pannello, diventa molto più comodo e semplice gestire la configurazione e la manuntezione del vostro server Linux: è un prodotto veramente interessante, soprattutto perchè complete e assolutamente gratuito.
Prima di procedere con l’installazione, è bene che studiate bene i requisiti presentati al seguente indirizzo.
Vediamo come installarlo e configurarlo correttemente. Dopo averlo scaricato al seguente indirizzo, procediamo con la ‘decomprensione’ del file archivio e sistemandoci nella cartella di installazione:
tar xvfz ISPConfig*.tar.gz
cd install_ispconfig
A questo punto siamo pronti per partire con il processo di installazione, lanciando il comando
./setup
A questo punto l’installatore si preoccuperà di tutto il processo, a noi non resterà che rispondere a delle domande che nella maggior parte dei casi sono semplici e chiare. La prima cosa che farà l’installatore sarà compilare Apache con il modulo PHP5: questa compilazioni non modificherà eventuali precedenti personalizzazioni nella configurazione del server wev
Una volta conclusa questa prima fase, sarà necessario creare un certificato SSL: a questo proposito verranno sottoposte una serie di domande, alle quali si può rispondere accettando i valori di default o inserendone di personali.
Bisogna fare attenzione quando raggiungiamo i seguenti punti :
Encrypting RSA private key of CA with a pass phrase for security [ca.key]
Encrypting RSA private key of SERVER with a pass phrase for security [server.key]
del processo di creazione del certificato, perchè qui possiamo chiedere se vogliamo crittografare la password realativa. E’ importante scegliere no, perchè altrimenti ogni qualvolta intendiamo riavviare il sistema ISPConfig ci verrà chiesta una password, e questo comporta che non è possibile riavviare il sistema senza un intervento umano.
Se ci troviamo di fronte un fallimento della compilazione, il processo di setup viene interrotto e i file finora compilati vengono rimossi. Dal messaggio di errore, dovrebbe essere chiaro il problema: una volta risolto, si può procedere nuovamente con il processo di setup.
In caso di successo, invece, ci verrà chiesto di scegliere una lingua: questa scelta si riferisce al linguaggio dell’interfaccia di ISPConfig. Una volta accetta la licenza, che consigliamo di leggere bene, viene chiesta la modalità di installazione: sarebbe meglio scegliere la modalità expert, perchè permette un maggior controllo sull’installazione. Quindi digitiamo 2 e proseguiamo con il processo di installazione.
Segue il riconscimento del daemon postfix, e la scelta della web-root: se non ci va bene la proposta di default, digitiamo n ed inseriamo la cartella che preferiamo. Inserita la web-root verranno richiesti ulteriori dati di configurazione:
Please enter your MySQL server:localhost Please enter your MySQL user:root Please enter your MySQL password:(inserire la pass scelta durante l’installazione del MySQL Server)
Please enter a name for the ISPConfig database (e.g. db_ispconfig):db_ispconfig Please enter the IP address of the ISPConfig web (e.g. 192.168.0.1):xxx.xxx.xxx.xxx (Inserire il proprio IP) Please enter the host name (e.g. www): www Please enter the domain (e.g. xyz.de):tuodominio.com
Please select the protocol (http or https (SSL encryption)) to use to access the ISPConfig system:
1) HTTPS
2) HTTP
Your Choice:1
Se stiamo procedendo ad una installazione di test, il nome host lo possiamo lasciare vuoto, e al posto del nome di dominio possiamo inserire l’indirizzo IP.
Una volta completati tutti i passaggi ISPConfig sarà finalmente installato sul proprio server. Se durante l’installazione abbiamo indicato www come nome host e tuodominio.com come dominio, allora l’interfaccia di ISPConfig sarà raggiungibile al seguente indirizzo:
https://www.tuodominio.com:81 o http://www.tuodominio.com:81
Il primo login andrà fatto inserendo admin come username e password. Ovviamente la prima cosa da fare una volta installato il pannello, è proprio quello di cambiare questi dati, viato che quelli di default non sono mai sicuri.
L’installazione è conclusa, e al seguente indirizzo potete trovare il manuale di utilizzo del pannello. Le istruzioni di installazione dettagliate per ogni sistema operativo linux sono disponibili qui.
Segue l’elenco dei comandi principali per gestire uno tra gli editor più importanti presenti praticamente in ogni versioni di Linux: attraverso questo editor si possono gestire tutti i tipi di file del sistema, e per chi gestisce da remoto un server Linux diventa di vitale importanza conoscere almeno le basi di VI.
Premessa
L’editor VI ha due modalità di funziomento: una per inserire il testo e l’altra per inserire i comandi. Quando apriamoun file con il comando “vi nomefile” la modalità di default è quella di comando: per poter modificare il file inserendo testo dobbiamo passare alla modalità testo premendo il tasto “ i ” : da questo momento in poi qualsiasi carattere o tasto premiamo verrà inserito nel file con il suo valore “testuale”. Per tornare alla modalità comando è sufficiente premere il tasto di “ESC“, digitare il comando che si desidera e premere “invio“.
Comandi Principali : Uscita & Salvataggio
ZZsalvare e uscire
:wsalvare
:w <file>salvare in altro file con il nome desiderato
:wqsalvare e uscire
:qse non sono state effettuate modifche usce senza salvare
:q!uscita incondizionata
Comandi di copia e incolla
yy copia la riga corrente
y2 <giu> copia 2 righe sotto la posizione in cui si trova il cursore
pincolla il testo nel punto dove si trova il cursore
Cancellare righe o caratteri
xcancella il carattere in cui si trova il cursore
Xcancella il carattere alla sinistra del cursore
Dcancella tutto quello che si trova alla sinistra del cursore fino alla fine della riga
ddcancella la riga in cui si trova il cursore
3ddcancella 3 righe partendo dalla quella in cui si trova il cursore
dGcancella dalla posizione in cui si trova il cursore fino alla fine del file
d1Gcancella dalla posizione in cui si trova il cursore fino all’inizio del file
Spostarsi nel file
^ inizio della riga corrente
$fine della riga corrente
Gfine del file
1G inizio del file
Ricerca e sostituzione del testo
/<testo>cerca il testo dalla posizione corrente verso il basso
?<testo>cerca il testo dalla posizione corrente verso l’alto
In ogni OS (Operating System) basato su Linux, i comandi da console sono fondamentali, per diverse attività che caratterizzano l’utilizzo stesso del sistema. Anche se ultimamente sono stare rilasciate versioni decisamente user-friendly ( v. Ubuntu ), che facilitano l’installazione ma anche l’utilizzo del OS, tuttavia i comandi da console rimangono fondamentali su un sistema Linux, soprattutto per chi intende approfondire le proprie conoscenze.
Per questo motivo, abbiamo deciso di raccogliere quelli che sono i principali comandi che spesse volte diventa necessario utilizzare per amminstrare al meglio il proprio sistama operativo Linux. Abbiamo scelto come OS d’esempio OpenSuse 10.3, che riteniamo una delle ultime release veramente interessanti, sia per la completezza e la robustezza del kernel sia per la facilità e la comodità di utilizzo anche per chi si avvicina per la prima volta al fantastico mondo Linux. La maggior parte dei comandi che vedremo funzionano su tutti i sistemi basati su Linux, quindi non vi preoccupate: se avete un altro OS, questa guida vi sarà comunque utilissima!!
CHMOD
Il primo comando che vediamo è uno dei più famosi nei sistemi Linux: chmod. Questo comando server per gestire i permessi e gli accessi a tutte le risorse del sistema (file, directory, ecc.) . Quindi attraverso questo comando decidiamo chi può fare che cosa: ma vediamo in dettaglio il suo funzionamento.
chmod (-R) 0777 /risorsa
-R è un attributo opzionale: indica la ricorsività;
/risorsa è il contenuto o l’oggetto a cui intendiamo applicare le restrizioni;
0777 rappresenta la codifica dei permessi. Vi sono diverse possibilità, che seguono uno schema preciso. chmod ci permette di assegnare permessi in scrittura, lettura ed esecuzione, elementi che ci riferiamo attraverso rispettivamente i valori 4, 2, 1: quindi assegnare 7 (4+2+1) significa assegnare i permessi in scrittura, in lettura e anche in esecuzione, ovvero non assegnare restrizioni. Ma perchè ripetiamo allora tre volte il 7? Perchè il primo si riferisce all’utente, il secondo a quelli del gruppo di appartenenza e il terzo agli “altri”.
Quindi, se ad esempio scriviamo nella shell: chmod -R 744 /myDir, assegnamo alla directory myDir e a tutti gli elementi che essa contiene (ricorsivamente) i permessi in lettura, scrittura, esecuzione, per il proprietario, e in sola lettura per gli utenti dello stesso gruppo e per gli altri utenti che non rientrano nelle categorie precedenti.
CHOWN
Questo comando principalmente permette di assegnare utente e un gruppo ad una determinata risorsa (purchè l’utente e il gruppo siano esistenti). Il comando da digitare è il seguente:
chown (-R) user:group /risorsa
in cui -R ha la stessa funzione della precedente, user e group sono rispettivamente il nuovo utente e il nuovo gruppo che vogliamo assegnare alla risorsa /risorsa .
LS
Con questo comando possiamo elencare tutte le risorse di una determinata directory, visualizzando per ogni elemento alcune importanti proprietà, come ad esempio i permessi settati attraverso il comando chmod. Il comando da digitare è il seguente:
ls -al
Con questo comando elenchiamo tutte le risorse contenute nella directory corrente, e per ogni risorsa ne visualizziamo le caratteristiche principali. Nel caso di directory con molti elementi al suo interno, è possibile utilizzare l’opzione -C, che visualizza il contenuto della directory in più colonne.
MAN
Questo è forse il comando più importante: infatti digitando
man comando
verrà visualizzato un manuale che raccoglie tutte le informazioni sul comando passato come parametro. In sostanza, attraverso il comando man si possono conoscere e studiare tutti gli altri comandi. Nel caso in cui le istruzioni visualizzate siano particolarmente lunghe, allora si può premere “invio” per preseguire nella lettura: per uscire dal manuale è sufficiente digitare la combinazione di tasti “:q” .
SU
Il comando su permette di cambiare utente. Per questioni di sicurezza, non bisognerebbe mai lavorare con l’account di root: bisognerebbe sempre creare un proprio user con il quale si completa l’attività di tutti i giorni. A volte, però, quando ad esempio diventa necessario aggiornare alcune determinate configurazioni del sistema, viene richiesta la password di root. In alcuni casi estremi, invece, è proprio neessario fare l’accesso come utente root: ma per far questo non è necessario fare il logout.
Nel terminale, è sufficiente digitare su , premere “invio“, inserire la password di root, ed ecco che siamo diventati gli amministratori del sistema.
PHP -V
Il comando php -v permette di visualizzare nella shell le informazioni base circa il motore PHP installato sul proprio server o sistema Linux, informazioni come la versione, il copyright e la data dell’ultimo aggiornamento.
TOUCH
Questo comando permette la creazione di file. La sintassi è semplicissima: touch nomefile se vogliamo creare il file nella directory corrente, altrimenti touch /percorso/nomefile per creare il file nella directory desiderata.
( Questo elenco verrà constantemente aggiornato, quindi se ora non trovi quello che ti serve…torna a trovarci!! )