Esercitazione Linux: Introduzione, shell, permessi
Transcript
Esercitazione Linux: Introduzione, shell, permessi
Sistemi Operativi DEE - Politecnico di Bari Introduzione a Linux Introduzione a Linux Shell bash Testi di riferimento: • Linux e la shell Bash • La shell Bash • Comandi shell bash 1 http://sisinflab.poliba.it/ruta/linux/Linux e la shell Bash.pdf http://www-ictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdf http://sisinflab.poliba.it/giannini/SO/Comandi_shell_bash.pdf A.A. 2016-2017 Sistemi Operativi Linux - Introduzione DEE - Politecnico di Bari Cos’è LINUX? • Si tratta di un clone di UNIX • Più precisamente è il kernel del S.O. Funzionalità di base • Scheduling dei processi • Gestione della memoria • Gestione dei file • Gestione dell’input/output Funzionalità avanzate • Editing e compilazione • Giochi, grafica e multimedialità • Supporto al networking 2 A.A. 2016-2017 Sistemi Operativi Caratteristiche del sistema DEE - Politecnico di Bari • • • • • • 3 Nota sui numeri di versione Le funzionalità Il kernel Il copyright Programmi di servizio Elaboratori di testo e videoscrittura A.A. 2016-2017 Sistemi Operativi I numeri di versione DEE - Politecnico di Bari • Sono due, diversi e riferiti a: • Distribuzione • Kernel • Versioning differente per kernel e distribuzione • Cos’è una distribuzione • Si tratta del pacchetto completo comprendente: 1. LINUX (vale a dire il kernel) 2. Applicativi • E’ sviluppata da una comunità indipendente dalle altre • Cos’è un kernel • Si tratta dell’insieme delle routine di basso livello del S.O. • E’ dipendente in maniera debole dalla distribuzione 4 A.A. 2016-2017 Sistemi Operativi Versioning del kernel (1/2) DEE - Politecnico di Bari • Consiste di quattro cifre: A.B.C[.D] (es. 2.6.12.3) • A: versione del kernel: • viene modificato molto raramente; • la più recente è la versione 3, nel 2011, per i 20 anni del kernel linux. • B: revisione "maggiore" del kernel: • prima della serie 2.6.x, • i numeri pari indicano un ramo stabile; • i numeri dispari (come 1.1 oppure 2.5) indicano rami di sviluppo; • a partire dalla serie 2.6.x, • il versioning diventa di tipo time-based e lo sviluppo di nuove caratteristiche avviene all'interno dello stesso ramo 5 A.A. 2016-2017 Sistemi Operativi Versioning del kernel (2/2) DEE - Politecnico di Bari • C: revisione "minore" del kernel: • Inizialmente, questo numero aumentava in corrispondenza di aggiornamenti riguardanti la sicurezza, correzioni di alcuni errori, nuove caratteristiche, o nuovi driver; • Modello attuale: viene cambiato solo quando nuovi driver o funzionalità aggiuntive sono introdotte. • D: patch number: • Serve a conteggiare correzioni e patch di sicurezza; • Nel 2011 si passa direttamente dalla versione 2.6.39 alla 3.0 • Versioning dopo la versione 3.0 • La seconda cifra viene incrementata ad ogni rilascio (3.1, 3.2, ecc.) • La terza cifra rappresenta il patch number • Dalla versione 3.19, si è passati direttamente alla 4.0 6 A.A. 2016-2017 Sistemi Operativi Funzionalità DEE - Politecnico di Bari • Multitasking e multiuser; • Multiprocessing; • Compatibilità con molte architetture di CPU: • Intel x86; • Sparc, Alpha, PowerPC; • Compatibilità con diversi file system • Compatibile con la maggioranza degli standard UNIX • Controllo diretto dei job in esecuzione • Console virtuale (modalità testuale) • Coesistenza con altri S.O. 7 A.A. 2016-2017 Sistemi Operativi X Window DEE - Politecnico di Bari • • • • • • • Si tratta dell’interfaccia grafica per macchine UNIX Ha una elevata configurabilità Si basa sull’utilizzo di dispositivi di puntamento generici E’ distribuita gratuitamente ed è open source E’ presente anche un emulatore di terminale Ha una architettura client-server E’ stratificato e modulare • X Server • Window Manager • Desktop Manager 8 A.A. 2016-2017 Sistemi Operativi X Window: Architetttura DEE - Politecnico di Bari • La soluzione client-server • E’ flessibile e vantaggiosa • Si adatta bene a casi in cui non serve un accesso grafico • Il server X può non essere avviato lasciando libere preziose risorse per altre applicazioni • Non vengono causati crash a causa della gestione grafica • Se il desktop manager si blocca non occorre riavviare la macchina • Il server ed il client possono trovar posto su due macchine differenti 9 A.A. 2016-2017 Sistemi Operativi X Server DEE - Politecnico di Bari Si occupa della gestione dell’hardware grafico E’ a contatto con il kernel Somiglia ai driver per scheda video di Windows Esistono diversi tipi di X Server Ogni X Server è riservato alla gestione di uno specifico insieme di hardware • E’ in esecuzione nella macchina fisica collegata ai dispositivi di input-output • • • • • 10 A.A. 2016-2017 Sistemi Operativi Window Manager DEE - Politecnico di Bari • • • • • • E’ un pacchetto complementare rispetto a X Window Non ha analogo in Microsoft Windows Gestisce le funzionalità avanzate della GUI Configura l’aspetto della barra del titolo di una finestra Configura l’aspetto dei pulsanti, delle icone e dei menu Gestisce le modalità operative • Configurazione dei tasti del mouse • Combinazioni di tasti per le scelte rapide 11 A.A. 2016-2017 Sistemi Operativi Desktop Manager DEE - Politecnico di Bari E’ l’ambiente grafico vero e proprio Si tratta del lato client del sistema grafico di LINUX E’ basato su librerie e componenti specifiche Viene distribuito con i relativi programmi configurazione • I più famosi • • • • • KDE (Usa la libreria QT) • GNOME (Usa la libreria GTK) 12 A.A. 2016-2017 di Sistemi Operativi Copyright(1/2) DEE - Politecnico di Bari • Software libero (GNU Free Software Foundation): 1. Libertà di eseguire il programma come si desidera, per qualsiasi scopo; 2. Libertà di studiare come funziona il programma e di modificarlo in modo da adattarlo alle proprie necessità; 3. Libertà di ridistribuire copie; 4. Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti. • Un software libero non è detto che sia gratuito! • Il kernel LINUX è rilasciato con licenza GNU GPL • I sorgenti sono liberamente modificabili; • Non esistono limitazioni ai diritti di distribuzione. 13 A.A. 2016-2017 Sistemi Operativi Copyright(2/2) DEE - Politecnico di Bari • La • • • La licenza GPL si estende ai sorgenti modificati Non è possibile introdurre licenze più restrittive La diffusione può essere gratuita o a pagamento GPL pone ampi margini di scelta alle aziende venditrici • I sorgenti di un software libero possono essere forniti in un secondo momento, ma è stabilito un limite al costo aggiuntivo (costi di spedizione del DVD). • La GPL impone la diffusione dei sorgenti • Obiettivi della GPL • Incrementare la qualità del software • Non trarre profitto 14 A.A. 2016-2017 Sistemi Operativi Programmi di servizio DEE - Politecnico di Bari • Traduzione per LINUX di tutte le utility UNIX • Possibilità di replicare un certo ambiente operativo: • Es. Java Development Kit (JDK) • Editor di testo: • vi e vim • Emacs e joe • Utility di compressione dati: • tar, gzip e bzip2 • SHELL 15 A.A. 2016-2017 Sistemi Operativi Elaboratori di testo DEE - Politecnico di Bari • Si introduce il testo in un linguaggio di formattazione che ne descrive l’aspetto • Un esempio di linguaggio di formattazione è HTML • La formattazione avviene mediante un programma distinto che converte i codici • Analogia con editing e compilazione • Maggiore portabilità dei documenti • Riferimenti aggiornati automaticamente • I più famosi sono TEX e il suo dialetto LATEX 16 A.A. 2016-2017 Videoscrittura Sistemi Operativi DEE - Politecnico di Bari • Interfaccia visuale • Editing di espressioni complesse (formule matematiche) • Interfaccia grafica per disegnare figure e schemi • Correttore ortografico interattivo • Generatore automatico di indici per documenti • Tool per la progettazione di font • Es: gedit, OpenOffice Writer 17 A.A. 2016-2017 Sistemi Operativi La shell: introduzione DEE - Politecnico di Bari • Un programma che permette ad un utente di interagire con un sistema operativo leggendo ed interpretando i comandi che vengono inseriti dall'utente. • La shell tipica dei sistemi Unix e Unix-like (GNU/Linux) è derivata da quella di Bourne: la shell BASH – Bourne Again Shell. • Una shell Unix svolge, di base, i compiti seguenti: • Prompt per inserimento dei comandi; • Interprete del comando inserito dall'utente; • Esegue le sostituzioni, in base ai caratteri jolly e alle variabili di ambiente; • Mette a disposizione alcuni comandi interni o programmi esterni; • Gestisce la ridirezione dell'input e dell'output; • É in grado di interpretare ed eseguire dei file script in linguaggio di shell; • Permette il controllo dei processi. 18 A.A. 2016-2017 Sistemi Operativi Shell: configurazione DEE - Politecnico di Bari • La shell può essere ampiamente personalizzata modificando le informazioni fornite da prompt, i colori, definizione statica degli alias e molto molto altro. • Ogni utente di un sistema Linux ha un file di configurazione (nascosto) per questo scopo, cioè .bashrc oppure .bash_profile, a seconda delle distribuzione utilizzata. • Questi file non sono altro che script di configurazione, contengono cioè una serie di comandi che verranno eseguiti al login, settando le variabili d'ambiente come il prompt o i colori, e quanto altro specificato. • Modificando questo file è possibile quindi adattare il più possibile la shell alle proprie esigenze e abitudini, riutilizzando il file di configurazione su altri sistemi. • Nella home-directory di ogni utente è presente un file (nascosto) che contiene la cronologia dei comandi immessi: .bash_history. • Viene sovrascritto quando si chiude la sessione 19 A.A. 2016-2017 Sistemi Operativi Terminale (1/2) DEE - Politecnico di Bari • Un terminale, in Unix, è un'interfaccia, testuale o grafica, tramite la quale gli utenti possono interagire col sistema. • I primi terminali erano telescriventi (TTY), ovvero apparecchiature che stampavano i risultati dell'elaborazione su carta, successivamente si sono diffuse versioni a schermo. • I terminali virtuali nei sistemi Unix e derivati vengono tutt'ora identificati con l'acronimo TTY seguito dal numero del terminale (es. tty3). Si utilizza comunemente la nozione terminale come abbreviativo di terminale virtuale. • Normalmente una distribuzione Linux per sistemi desktop avvia sette terminali di cui i primi sei sono shell testuali, mentre il settimo è dedicato al terminale che ospita la sessione grafica. • Quando si avviano più sessioni grafiche, queste risiederanno nei terminali grafici successivi al settimo. 20 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Terminale (2/2) • ALT+Fx: Per muoversi tra i terminali, dove “x” è il numero del tasto funzione sulla tastiera e “+” significa contemporaneamente. • CTRL+ALT+Fx: Per spostarsi dalla sessione grafica ad un altro terminale, poiché le combinazioni ALT+Fx sono utilizzate per altri scopi. • Nella sessione grafica è possibile utilizzare il terminale tramite un programma che lo emuli, consentendo le stesse operazioni del terminale standard. Programma di emulazione del terminale: •Consente di utilizzare anche il mouse per inserire comandi ed estrarre del testo •I programmi di emulazione terminale più utilizzati nella sessione grafica sono: •xterm Lo standard, disponibile su tutti i desktop environment •gnome-terminal Programma terminale del desktop Gnome •kterm Programma terminale del desktop Kde. 21 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Connessione ad un terminale virtuale • Al prompt compare login:, digitare il login dell'utente, e convalidare premendo Entra, • Password:. digitare la password dell'utente e convalidare. • La password non si visualizza alla schermata per ragioni di sicurezza. Se la password è valida, il prompt di comandi deve visualizzarsi, come in seguito, indicando che la connessione è riuscita • 22 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Prompt dei comandi • Il prompt di comandi della shell ha generalmente la forma seguente: nome@computer ~ $ • nome - rappresenta il login dell'utente connesso • computer- rappresenta il nome del computer • ~ indica la directory personale /home/utente • $ si è connessi come utente • Se al posto di $ è visualizzato il simbolo #, allora si è connessi come superutente (root). 23 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Tipi di comandi • Interni (built-in): Funzioni elementari eseguite direttamente dalla shell, la loro esecuzione non provoca la creazione di un nuovo task poiché il codice fa parte dell'eseguibile stesso della shell. • Esterni: File contenenti programmi in formato eseguibile la cui esecuzione provoca la creazione di un nuovo task figlio della shell da cui sono avviati. • Script: File testuali in linguaggio shell, con permessi di esecuzione, contenente una serie di istruzioni e comandi interpretabili dalla shell. • Quando si digita un comando: 1. 2. 3. 4. 24 La shell verifica se si tratta di un comando interno (built-in). In caso positivo lo esegue Altrimenti crea un nuovo processo che esegue il comando. Questo processo (task) sarà figlio della shell da cui è stato eseguito A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Metacaratteri Servono normalmente per lavorare con file e directory e sono interpretati ed utilizzati direttamente dalla shell. • * : Una qualsiasi stringa di caratteri • ? : Un solo carattere, qualsiasi • [a-h] : Un carattere compreso, nel set ASCII, tra 'a' ed 'h', cioè tra i valori ASCII di a e h • [aei] : Un carattere che sia tra 'a' o 'e' o 'i', i caratteri sono in OR tra loro. • [!aei] : Un carattere che non sia 'a' o 'e' o 'i'. Altri metacaratteri sono: • > : Ridirezione dello standard output su file, sostituendo il contenuto del file esistente • < : Ridirezione dello standard input su file (es. il contenuto del file diventa l’input di un comando) • >> : Ridirezione in modalità append dello standard output su file, continuando a scrivere sul file esistente • & : Richiesta di esecuzione di un comando in background, il simbolo va messo subito dopo il comando. Il terminale ritorna subito disponibile dopo averlo lanciato. • ; : separatore di comandi all'interno di una stessa riga. Serve a separare i comandi permettendo di eseguire più comandi in maniera sequenziale. 25 A.A. 2016-2017 Sistemi Operativi Flag DEE - Politecnico di Bari • Sono delle opzioni aggiuntive con cui eseguire un comando, per modificarne l'effetto rispetto a quello di default. • Normalmente l'ordine relativo di inserimento dei flag è indifferente. • Sono case sensitive, cioè X è ben diverso da x. Non è raro che un comando abbia flag maiuscoli e minuscoli dello stesso carattere ma con effetto totalmente differente. • Di solito ogni comando ha dei suoi flag, ed ogni flag può essere: • Semplice: Una lettera, in genere preceduta da un trattino (es. -R) • Estesa: Una parola preceduta da due trattini (es. --all); oppure più parole, sempre precedute da due trattini ma separate tra loro da un trattino, senza spazi (es. –no-spinner) • Con argomento: Un flag semplice o estesa con in aggiunta un argomento di seguito (es. -f file, oppure --max-depth 3). • Esistono, per alcuni comandi, anche dei flag letterali che si usano senza anteporre il trattino, quindi bisogna prestare molta attenzione alle pagine di manuale. • Per usare più flag contemporaneamente, 26 • si può specificarle tutte separandole da uno o più spazi (es. -X -y -Z) • con un solo trattino iniziale se il comando prevede i flag anteponendo il trattino, ma in ogni caso senza spazi tra di loro (es. -XyZ). A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Flag: i più frequenti • Ci sono alcuni flag che vengono utilizzate in maniera identica da tantissimi comandi. • Flag equivalenti che richiedono la visualizzazione dell'help del colmando: • --help, -h, -H: Presente normalmente in ogni comando • I comandi che accettano necessariamente un argomento su cui operare, se lanciati senza l'argomento, mostrano (oltre che un errore di mancato inserimento) l'help dei comandi, esattamente come con il flag --help. • Flag equivalenti che richiedono un output (sullo standard output) più dettagliato delle operazioni eseguite: --verbose, -v • Flag frequenti (nei comandi che gestiscono file) • • -R (--recursive) : richiede di eseguire l'operazione ricorsivamente all'interno delle eventuali subdirectory • -f (--force) : forza l'esecuzione dell'operazione in presenza di file o directory con lo stesso nome • -a (--all) : nei comandi che mostrano informazioni su qualcosa, è usata per utilizzare insieme tutti i possibili flag. Nella maggior parte dei comandi esterni è spesso presente il flag --version che mostra la versione del programma, anziché eseguirlo. 27 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • Scorciatorie Tasto Tab: Completa ciò che si sta scrivendo, se è univoco. • Velocizza la scrittura di comandi e percorsi, • Permette di non sbagliare mai il nome di un comando o di un percorso, poiché se viene completato col tasto Tab, allora è sicuramente corretto, viceversa c'è di certo qualcosa di sbagliato. • Se il tasto Tab non completa il comando o il percorso vuol dire che i caratteri fin ora digitati non rendono univoca la scelta del percorso o del comando, oppure che non esiste un comando o percorso che comincia per i caratteri fin ora digitati. Premendo due volte Tab si visualizzano le alternative • Tasti Freccia: Il tasto su per navigare nell'elenco dei comandi digitati, tornando indietro cronologicamente, giù per scorrere in avanti la cronologia. Viene mostrata una riga per volta. • CTRL+R: Cerca dinamicamente nella history (trattata in seguito) le righe che contengono la stringa digitata • CTRL+H: Cancella il carattere a sinistra del cursore, equivalente del tasto backspace • CTRL+W: Cancella l'ultima parola inserita • CTRL+U: Cancella l'intera riga • CTRL+L: Pulisce lo schermo (si può anche digitare il comando clear). 28 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • • • • Sintassi di un comando: schema generale Comando • (eventuale significato acronimo) • Breve descrizione di quello che fa il comando specificato. SINTASSI: descrive il modo, anche più di uno, con cui si può utilizzare comando • comando [-flag] argomento [file] • tutto ciò che è racchiuso tra [parentesi quadre] è da intendersi come opzionale. FLAG: elenca le opzioni maggiormente utilizzate del rispettivo comando • -X: Descrizione dell'effetto del flag X sul comando • -t stringa: Descrizione dell'effetto del flag t seguita dal suo argomento stringa. ESEMPI • 1. comando -X argomento • Descrizione dell'effetto del comando con il flag x. • La maggior parte dei comandi descritti in questo documento contengono altri flag, per un utilizzo più approfondito è sempre necessario consultare l'unica fonte esaustiva: la pagina man del comando. • Spesso anche i flag hanno argomenti, questo accade quando il comando può fare un'azione abbastanza complessa e quindi avere più argomenti per le varie opzioni disponibili. 29 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • man (1/3) man • (manual) • Formatta e mostra le pagine di guida in linea del comando specificato. Le pagine di manuale hanno delle sottosezioni, i cui nomi e ordine sono stabiliti per tutte le pagine. L'ordine in genere è: • NAME Nome comando e breve descrizione • SYNOPSIS Sintassi del comando • DESCRIPTION Descrizione dettagliata • OPTIONS Lista di tutti i flag con relativa descrizione. • • Diversi file di configurazione del sistema hanno una loro pagina di manuale accessibile digitando man nome_file_configurazione. SINTASSI • 30 man -[fkKw] [sezione o -S sezione] [-P paginatore] [-m sistema] [-p stringa] nomecomando A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari man (2/3) • FLAG • -f : Equivalente a whatis – corrispondenza esatta con NAME, mostra NAME (e sezione) e relativo commento • -k : Equivalente ad apropos - cerca nel NAME e nel commento del man di tutti i comandi il pattern (comando) in argomento. • -K : Ricerca una stringa specifica in tutte le pagine della guida, può risultare lento • -w : Non mostra subito la pagina di guida, ma stampa la posizione dei file che dovrebbero essere formattati o mostrati (Equivalente a --path) • -P : Specifica il programma di impaginazione da usare. Per default il comando man usa /usr/bin/less • -Sx : Le pagine di manuale di un sistema UNIX sono raggruppate in 8 sezioni (insieme di argomenti logicamente affini). Mostra la pagina di manuale della sezione x, con x numero intero. • 1 - Comandi per l'utente: programmi eseguibili o comandi di shell (ls, vi, ...) • 2 - System call (open, write, fork, ...); • 3 - Funzioni C di libreria (printf, scanf, …); • 4 - Device e file speciali (/dev/null, /dev/mouse, ...); La sezione può essere anche specificata solo con x. 31 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • man (3/3) ESEMPIO L'argomento del comando man viene ricercato all'interno delle sezioni in ordine crescente. Alla prima corrispondenza trovata, viene visualizzata la pagina di manuale individuata. • man write La parola write corrisponde almeno a due pagine di manuale: • Il comando write per comunicare con gli utenti (sezione 1); • La system call write per l'I/O a basso livello (sezione 2). Difatti: • man –f write: restituisce il seguente output • write (2) - write to a file descriptor • write (1) - send a message to another user Per visualizzare la pagina della system call usiamo equivalentemente: • man -S2 write • man 2 write A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • info • • • Mostra la documentazione in formato Info del comando specificato. SINTASSI • • info - whatis info nomecomando whatis • Ricerca una parola chiave nel suo database contenente brevi descrizioni dei comandi di sistema, ossia solo i campi NOME (NAME) delle rispettive pagine man di tutti i comandi. • Mostra i risultati sullo standard output, cercando solo le corrispondenze esatte della parola chiave. • Il database di whatis è creato usando il comando makewhatis ESEMPIO • 33 whatis man : restituisce il seguente output • man (1) - un'interfaccia ai manuali di riferimento in linea • man (7) - macros to format man pages A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • • apropos apropos • Opera come whatis • Mostra però tutte le corrispondenze trovate, non solamente quella esatta nel nome del comando, ma anche le parole che contengono la stringa specificata, sia nel nome del comando sia nella loro descrizione. ESEMPI • whatis grep restituisce il seguente output: • grep (1) • - print lines matching a pattern apropos grep restituisce il seguente output • bzegrep (1) - search possibly bzip2 compressed files for a regular e... • bzfgrep (1) - search possibly bzip2 compressed files for a regular e... • bzgrep (1) - search possibly bzip2 compressed files for a regular e... • egrep (1) - print lines matching a pattern • fgrep (1) - print lines matching a pattern • git-grep (1) - Print lines matching a pattern • grep (1) - print lines matching a pattern • grep-aptavail (1) - grep Debian control files • … 34 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • • history history • Mostra sullo standard output lo storico dei comandi, di default gli ultimi 500, digitati nella shell dall'utente correntemente loggato, numerandoli progressivamente. • Permette molte funzioni di manipolazione ed elaborazione della cronologia dei comandi. ESEMPI • history • Mostra gli ultimi 500 comandi digitati • history -c • Elimina la cronologia dei comandi, ricominciando la numerazione. • E' possibile utilizzare nella shell delle scorciatoie collegate a history: 35 • !n: Per riutilizzare il comando n-esimo nella history • !-n: Per riutilizzare il comando già usato n comandi prima • !string: Per riutilizzare il comando più recente contenente string A.A. 2016-2017 Sistemi Operativi uname DEE - Politecnico di Bari • uname • • SINTASSI • • • Mostra alcune informazioni sul sistema. uname -[a] -[snrvmpio] FLAG • -a (--all): Mostra tutte le informazioni dei flag successivi, nell'ordine in cui sono indicati i flag • -s (--kernel-name): Nome del kernel in uso • -n (--nodename): Hostname del calcolatore, il nome del suo nodo nella rete • -r (--kernel-release): Release del kernel in uso • -v (--kernel-version): Versione del kernel in uso • -m (--machine): Nome dell'architettura della CPU (es. i686) • -p (--processor): Tipo di processore o “unknown” se non viene riconosciuto automaticamente • -i (--hardware-platform): Tipo di piattaforma hardware o “unknown” se non viene riconosciuta automaticamente. • -o (--operating-system): Sistema operativo (es. GNU/Linux). ESEMPI 36 • uname -p :AMD Athlon(tm) 64 X2 Dual Core Processor 6200+ • uname -roms :Linux 2.6.27-gentoo-r2 x86_64 GNU/Linux (l’ordine resta quello definito sopra!) A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Permessi di accesso a file e directory • Ad un file possono essere attribuiti i seguenti permessi: • Lettura (read) • Scrittura (write) • Esecuzione (execute) • Appena un file è creato, esso viene collegato all’utente che lo ha creato e al gruppo cui fa parte in quel momento l’utente • I permessi sono definiti per: • Utente proprietario del file • Gruppo (a cui appartiene il proprietario del file) • Other (tutti gli altri utenti) 37 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari ACL • Ad ogni file (e directory) è associata una stringa di 10 caratteri, detta lista di controllo agli accessi o Access Control List (ACL), contenente i diritti di accesso al file • I permessi sono visualizzati nei primi dieci caratteri, suddivisi in 4 insiemi: 38 • l: tipo di file • u: permessi concessi al proprietario del file • g: permessi concessi agli utenti membri del gruppo • o: permessi agli altri utenti, non compresi nei precedenti insiemi A.A. 2016-2017 Sistemi Operativi Tipo di file DEE - Politecnico di Bari simbolo tipo d Directory - File b File speciale a blocchi Fornisce un'interfaccia bufferizzata a blocchi di lunghezza fissa per l'I/O da dispositivi di memorizzazione (hard disk, cdrom, …) c File speciale a caratteri Fornisce un'interfaccia non bufferizzata con blocchi di lunghezza variabile a dispositivi quali schede audio, terminali, porte seriali, ... l Link simbolico Realizza collegamenti tra file 39 descrizione A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari • Significato dei permessi Se è presente il permesso ci sarà la lettera corrispondente (r,w,x), sempre nell'ordine indicato, viceversa al suo posto ci sarà un trattino (–) 40 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Esempi • - rwx rw- r-• file ordinario (- iniziale); • l'utente proprietario (rwx, primo blocco da tre caratteri) può leggere (r), scrivere (w) ed eseguire il file (x); • Il gruppo proprietario (rw-, secondo blocco da tre caratteri) può leggere (r) e scrivere (w) il file ma non eseguirlo (-); • Gli altri utenti (r--, terzo blocco da tre caratteri) possono solamente leggere (r) il file. • d rwx r-x r-x • directory (d iniziale); • l'utente proprietario (rwx, primo blocco da tre caratteri) può leggere(r), modificare(w) ed scansionare(x) la directory; • Sia i membri del gruppo proprietario che tutti gli altri utenti (r-x, secondo e terzo blocco da tre caratteri) possono solamente leggere (r) il contenuto della directory o navigare. 41 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Creazione di un file • Al momento della creazione di un file, esso appartiene all’utente che lo ha creato (utente proprietario) e assume il gruppo di quest’ultimo (gruppo proprietario) • Un file (directory), al momento della creazione, è per default reso accessibile con tutti i permessi all’utente proprietario • Generalmente tutti gli altri possono leggere ed eseguire ma non scrivere, compresi quelli del gruppo di appartenenza. • La sua ACL sarà: • - rw- r-- r-- (file, non eseguibile) • d rwx r-x r-x (directory) • L’utente proprietario può cambiare la ACL in qualunque momento mediante il comando chmod • Il superuser può modificare l’utente e il gruppo proprietario con i comandi chown e chgrp 42 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari chmod • change mode: permette di cambiare i permessi di accesso (lettura, scrittura, esecuzione) di un file. • Il comando può essere eseguito solo dall’utente proprietario (o dal superuser) SINTASSI • chmod [-R] modo file • L'argomento modo può essere o in formato simbolico oppure ottale. FLAG • -R: Cambia i permessi ricorsivamente, cioè proseguendo l'operazione nelle eventuali subdirectory e relativi file 43 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Permessi: forma simbolica (1/1) • I permessi sono formati da una combinazione sequenziale di codici utente e codici di permesso: 44 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Permessi: forma simbolica (2/2) • Per modificare i permessi di uno o più file, l’argomento del comando chmod (oltre al file) deve essere: • Codice utente • Operatore • Codice di permesso 45 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari Permessi: forma ottale • La forma ottale è costituita da tre cifre comprese tra 0 e 7, una per ogni tipo di permesso ammissibile. • Ogni cifra è interpretata come una somma delle prime 3 potenze del 2. • Ogni cifra in forma ottale corrisponde a tre bit dell’ACL • I permessi di accesso variano da 000 a 777 46 A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari 47 chmod: esempi A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari 48 chmod: esempi A.A. 2016-2017 Sistemi Operativi DEE - Politecnico di Bari 49 chmod: esempi A.A. 2016-2017 Sistemi Operativi chown DEE - Politecnico di Bari • change owner: cambia l'utente proprietario, il gruppo proprietario (o entrambi) dei file specificati (solo da superuser). • Per cambiare anche o solo il gruppo proprietario bisogna farlo precedere da un punto (.) SINTASSI • chown[-R] [utente] [.] [gruppo]file FLAG • -R: Cambia i permessi ricorsivamente, cioè proseguendo l'operazione nelle eventuali subdirectory ESEMPI • chown utente1 /percorso/file_esempio file_esempio avrà come proprietario utente1 • chown –R utente1.gruppoB /percorso/directory_esempio directory_esempio e tutti i suoi file e subdirectory avranno come proprietario utente1 e gruppoB come gruppo proprietario • chown .gruppoB /percorso/file_esempio file_esempio avrà come gruppo proprietario gruppoB. 50 A.A. 2016-2017 Sistemi Operativi chgrp DEE - Politecnico di Bari • change group: cambia il gruppo proprietario dei file specificati (solo da superuser) SINTASSI • chgrp [-R] nuovo_gruppo lista_file FLAG • -R: Cambia i permessi ricorsivamente, cioè proseguendo l'operazione nelle eventuali subdirectory ESEMPI • chgrp gruppoB /percorso/file_esempio file_esempio avrà come nuovo gruppo proprietario gruppoB 51 A.A. 2016-2017