Ca ra tter is tich e dei s is tem i G N U/ L in ux ● Struttura di un sistema GNU/Linux ● Il filesystem ● La shell 1 Ca ra tter is tich e dei s is tem i G N U/ L in ux GNU/Linux è un sistema operativo, cioè un insieme di programmi che collaborano fra di loro rendendo utilizzabile un calcolatore, infatti senza esso un computer sarebbe inutilizzabile per un comune essere umano!!! Lo chiamiamo GNU/Linux proprio perché è l'unione di due progetti, il progetto GNU e il progetto Linux. ● 2 Ca ra tter is tich e dei s is tem i G N U/ L in ux Linux effettivamente è solo un kernel, cioè il cuore di un sistema operativo. Un S.O. è formato a strati, lo strato più basso è il kernel, esso ha il compito di “guidare” l'hardware sottostante e di regolare i vari compiti da eseguire. 3 Ca ra tter is tich e dei s is tem i G N U/ L in ux 4 Ca ra tter is tich e dei s is tem i G N U/ L in ux Il kernel linux nasce negli anni '90, il progetto fu lanciato da Linus Torvalds, un giovane studente finlandese. La leggenda vuole che egli, dopo aver avuto una discussione con il suo professore di S.O. su quale fosse il modo migliore di implementare un kernel, decise di creare un suo kernel, e di rilasciarlo sotto licenza GPL, mossa che poi si rivelò vincente. In rete è ancora possibile trovare il post che Torvalds scrisse alla comunità open source. 5 Ca ra tter is tich e dei s is tem i G N U/ L in ux Linux, in principio, era un kernel strettamente monolitico, cioè tutto quello che serve per operare su una determinata macchina ( driver ecc.. ) è caricato direttamente tutto in memoria. Oggi Linux è un kernel ibrido-modulare, cioè è possibile caricare i vari moduli in runtime, ogni modulo andrà a far parte del kernel. 6 Ca ra tter is tich e dei s is tem i G N U/ L in ux Altra caratteristica dei sistemi GNU/Linux è la multiutenza, ciò significa che più utenti possono operare contemporaneamente su una stessa macchina. Questa caratteristica è stata ereditata dal sistema Unix. Ed è ovviamente anche multitasking, quindi più programmi possono essere eseguiti in contemporanea. 7 Ca ra tter is tich e dei s is tem i G N U/ L in ux Ora parliamo del filesystem, esso è la parte del S.O. che consente di gestire i file presenti sui dispositivi di memorizzazione, in maniera trasparente, cioè chi utilizza il calcolatore non ha bisogno di conoscere come e dove i dati vengano fisicamente salvati. I principali filesystem linux oggi sono ext2, ext3 journaling. Ognuno di essi ha le proprie caratteristiche ma il modo di presentare l'organizzazione logica dei file è la stessa. 8 Ca ra tter is tich e dei s is tem i G N U/ L in ux L'organizzazione logica di un filesystem è quella che l'utente finale “vede”. Questi filesystem presentano le varie directory e i vari file organizzati secondo una struttura ad albero, quindi come qualcosa del genere. 9 Ca ra tter is tich e dei s is tem i G N U/ L in ux R A B D C E R è chiamata radice A, B, C sono figli della radice infine A, F, G sono foglie dell'albero ( non hanno figli ) F G 10 Ca ra tter is tich e dei s is tem i G N U/ L in ux La radice ( root ) è rappresentata con il simbolo / le cartelle principali del sistema sono: bin, etc, usr, home, mnt, media, boot, var, root, sbin. I path name avranno quindi una forma del tipo /home/mextil/prova.c, dove la prima / indica la root le successive determinano una divisione fra i nomi delle directory e dei file. 11 Ca ra tter is tich e dei s is tem i G N U/ L in ux / usr bin etc Quindi ammettendo di voler raggiungere il file ls il path associato sarà: /bin/ls ls 12 Ca ra tter is tich e dei s is tem i G N U/ L in ux Abbiamo elencato prima le cartelle principali, vediamo ora cosa contiene ognuna di esse: bin: applicazioni utente sbin: applicazioni di sistema etc: file di configurazione, servizi etc.. usr: programmi utente, manuali ecc.. media, mnt: filesystem “esterni” root: home utente amministratore home: cartelle home degli utenti 13 Ca ra tter is tich e dei s is tem i G N U/ L in ux Beh siamo arrivati a parlare degli utenti. Prima abbiamo accennato che i sistemi Unix like, quindi anche linux sono sistemi multiutente,quindi, è possibile registrare su una macchina più utenti. I dati di ogni utente vengono salvati in un file speciale chiamato passwd esso, solitamente, è situato nella cartelle /etc (/etc/passwd), è un semplice file di testo dove ogni riga rappresenta un record, strutturato nel seguente modo nome_utente:password:uid:gid:dati_vari:home:shell 14 Ca ra tter is tich e dei s is tem i G N U/ L in ux Il file shadow invece mette in relazione ogni utente con la propria password cifrata ( /etc/password ). 15 Ca ra tter is tich e dei s is tem i G N U/ L in ux Ma cosa sono uid e gid? I sistemi unix like riconoscono gli utenti in basa ad un numero denominato user identificator ( uid ), ogni utente appartiene ad un gruppo che a sua volta viene identificato con un numero denominato group identificator ( gid ). Ma a cosa servono praticamente questi numeri? 16 Ca ra tter is tich e dei s is tem i G N U/ L in ux Qui introduciamo, per quanto riguarda il filesystem il concetto di permesso su file. Esso determina, per ogni file, le operazioni che l'utente ha a disposizione che possono essere scrittura, lettura, esecuzione. Su ogni file ritroveremo quindi qualcosa del genere: rwxrwxrwx La prima terna di permessi specifica i permessi per il proprietario del file, la seconda i permessi per il gruppo di appartenenza del proprietario la terza per gli altri 17 Ca ra tter is tich e dei s is tem i G N U/ L in ux Quindi se guardando le proprietà di un file troviamo i seguenti permessi rwxr----x cosa può fare il proprietario, cosa possono fare gli utenti appartenenti al gruppo del proprietario e cosa possono fare gli altri utenti? 18 Ca ra tter is tich e dei s is tem i G N U/ L in ux I permessi possono essere specificati anche in ottale. I permessi sono salvati dal sistema come sequenza di nove bit ad esempio 111100000. Una sequenza del genere va letta a gruppi di tre bit, e in ogni terna ogni singolo bit specifica se un permesso è attivo o meno, nell'esempio l'utente proprietario ha i permessi di rwx mentre il gruppo solo di r gli altri nessuno. rwxr----Possiamo tradurre in una sequenza di tre ottali le tre sequenze ad esempio 740 19 Ca ra tter is tich e dei s is tem i G N U/ L in ux Nei sistemi Unix like l'amministratore di sistema, chiamato root, è l'unico utente che può effettuare qualsiasi operazione su qualsiasi file, inoltre ha a disposizione diversi comandi di amministrazione che non possono essere eseguiti dai normali uteni. 20 Ca ra tter is tich e dei s is tem i G N U/ L in ux Parliamo ora della shell ( interprete dei comandi ), in un sistema operativo consente ad un utente l'esecuzione dei comandi. Nei sistemi GNU/Linux sono presenti diverse shell, le più importanti sono sh, bash e cshell. 21 Ca ra tter is tich e dei s is tem i G N U/ L in ux La bash ( Bourne Again SHell ) è un interprete dei comandi presente in tutti i sistemi Unix Like. E' una copia modificata della shell standard sh, creata da Stephen Bourne. Come tutte le shell *unix la bash permette l'esecuzione di funzioni o di applicazioni, mette quindi in comunicazione l'utente con il sistema operativo. Altre shell *unix sono l'sh,csh, tcsh ecc... 22 Ca ra tter is tich e dei s is tem i G N U/ L in ux Al suo avvio la bash carica dalla home directory i file .bashrc e .bash_profile essi specificano alcune caratteristiche personalizzabili dall'utente. 23 Ca ra tter is tich e dei s is tem i G N U/ L in ux utente@host:~/$ _ la parte antecedenti il $ è detta promt e indica il nome utente, l'host su cui sta operando e la directory corrente. Nella parte che segue il simbolo di $ si inseriscono i comandi. 24 Ca ra tter is tich e dei s is tem i G N U/ L in ux Quando scriviamo il nome di un comando o di un applicazione la bash controlla se esso è un comando built-in (il codice del comando è integrato nel codice della shell) dopodiché controlla che il comando sia presente in una delle cartelle di dafault /bin /sbin /usr/bin, se presente in tale cartelle lancia il file altrimenti lancia un errore. Se si vuole lanciare un applicazione che non è presente in una di queste cartelle occorre specificare il path completo. utente@host:~/$ /home/utente/mioprog 25 Ca ra tter is tich e dei s is tem i G N U/ L in ux I path possono essere anche abbreviati utilizzando caratteri come . .. e ~. Il primo si riferisce alla directory, quindi se scriviamo ./prova ci stiamo riferendo al file prova presente nella cartella corrente. Il secondo ( .. ), indica la cartella padre quindi digitando ../altracartella/prova ci riferiamo alla sottocartella altracartella posizionata nella cartella padre alla posizione attuale. Il simbolo ~ indica invece l'home directory dell'utente che sta utilizzando la shell, quindi se siamo mextil ~ indica /home/mextil 26 Ca ra tter is tich e dei s is tem i G N U/ L in ux Il comando cd permette all'utente di cambiare la directory corrente. E' un comando built-in quindi il suo codice è integrato nella bash. infatti se cerchiamo il file cd nelle cartelle /bin, /sbin o /usr/bin non avremo risultati. utente@host:~/$ cd prova utente@host:~/prova$ 27 Ca ra tter is tich e dei s is tem i G N U/ L in ux Il comando ls visualizza il contenuto di una directory, lanciato senza argomenti visualizza il contenuto della directory corrente. Si possono anche utilizzare svariate opzioni ad esempio l'opzione a che visualizza anche i file nascosti e l che visualizza il tutto come un elenco visualizzando anche i permessi sui file. Le opzioni vanno antecedute dal simbolo utente@host:~/$ ls -al 28 Ca ra tter is tich e dei s is tem i G N U/ L in ux Per leggere un file possiamo usare il comando less ( less nomefile) o cat ( cat nomefile ). La differenza è minima con cat possiamo leggere di tutto less riconosce se i file sono immagini video ecc.. utente@host:~/$ cat prova utente@host:~/$ less prova 29 Ca ra tter is tich e dei s is tem i G N U/ L in ux chmod è il comando che permette di cambiare i permessi su di un file. Ovviamente tale operazione è permessa solo al proprietario del file e all'utente root. Il suo utilizzo è semplice, lo si può usare specificando i permessi in ottale o specificando i permessi da aggiungere o rimuovere a tutti anteceduti da un + o un – ad esempio utente@host:~/$ chmod +x prova da a tutti il permesso d'esecuzione sul file prova utente@host:~/$ chmod -x prova revoca tale permesso 30 Ca ra tter is tich e dei s is tem i G N U/ L in ux Altrimenti se vogliamo specificare i permessi più dettagliatamente usiamo la notazione ottale. utente@host:~/$ chmod 740 prova Da all'utente proprietario i permessi di rwx al gruppo di r e agli altri nessuno. 31 Ca ra tter is tich e dei s is tem i G N U/ L in ux chown permette di modificare il proprietario del file. La sua sintassi è: utente@host:~/$ chown nuovoproprietario:nuovogruppo file Anche questo comando è riservato al proprietario del file o a root. 32 Ca ra tter is tich e dei s is tem i G N U/ L in ux Il comando sudo ( super user do ) permette di eseguire applicazioni con permessi di root, conoscendo solo la nostra paswword e non quella di root. Ovviamente non a tutti è permesso l'uso di questo programma, root può scegliere chi sostituisce chi tramite il file /etc/sudoers. 33 Ca ra tter is tich e dei s is tem i G N U/ L in ux Per utilizzare sudo basta scrivere sudo seguito dal comando che vogliamo lanciare. utente@host:~/$ sudo comando password: Un opzione utili può essere i che permette di lanciare una shell root. utente@host:~/$ sudo -i password: root@host:~$ 34 Ca ra tter is tich e dei s is tem i G N U/ L in ux Il comando su ( substitute user ) permette di accedere alla shell come root, per usare questo comando bisogna conoscere la password di root. Per lanciare il comando basta scrivere su. utente@host:~/$ su password: root@host:~: 35 Ca ra tter is tich e dei s is tem i G N U/ L in ux useradd aggiunge un nuovo utente, solo root può eseguire questo comando. Per lanciarlo si deve scrivere utente@host:~/$ useradd nome_utente -l nome_login 36 Ca ra tter is tich e dei s is tem i G N U/ L in ux Alcune opzioni utili sono: -d home directory -e data scadenza -g gruppo iniziale -p password -s shell -u uid -l logni 37 Ca ra tter is tich e dei s is tem i G N U/ L in ux userdel elimina un utente, anche questo comando può eseguirlo solo root. utente@host:~/$ userdel nome_utente L'unica opzione utilizzabile è -r che indica al comando di eliminare tutti i file presenti nella home directory dell'utente da cancellare. utente@host:~/$ userdel -r nome_utente 38 Ca ra tter is tich e dei s is tem i G N U/ L in ux usermod modifica i dati di un utente, va usato con le opzioni che sono le stesse di useradd. utente@host:~/$ usermod utente -s sh L'esempio cambia la shell di default dell'utente. 39 Ca ra tter is tich e dei s is tem i G N U/ L in ux Beh a questo punto che dire in queste poche slides sembra si capisca che un sistema Linux è più sotto il nostro controllo, fa quello che gli diciamo di fare in poche parole. Infine per concludere vi lascio con questo comando utente@host:~/$ shutdown -h now 40
© Copyright 2024 ExpyDoc