Sistemioperativi ì - unipi.it

51
ì Fabio Del Vigna - [email protected] Sistemi operativi Corso di Laurea Triennale in Ingegneria Informatica Lezione 4 Cenni a Xserver Patch, diff Tar, gzip, bzip Find, grep

Transcript of Sistemioperativi ì - unipi.it

Page 1: Sistemioperativi ì - unipi.it

ì

FabioDelVigna- [email protected]

Sistemi operativiCorso di Laurea Triennale in Ingegneria Informatica

Lezione 4• Cenni a Xserver• Patch, diff• Tar, gzip, bzip• Find, grep

Page 2: Sistemioperativi ì - unipi.it

Domande sulle lezioni passate?

FabioDelVigna- [email protected]

Page 3: Sistemioperativi ì - unipi.it

Soluzione esercizi passati (permessi 1/3)

ì cdì mkdir –p visibile/segretaì echo 'vero' > visibile/notizia.txtì cp visibile/notizia.txt

visibile/segreta/cronaca.txt

ì chmod u-x visibileì chmod u+x visibile

ì Supponendo che i diritti del gruppo e di others siano solo di lettura ed esecuzione ma non di scrittura:

ì chmod 655 visibile

FabioDelVigna- [email protected]

Page 4: Sistemioperativi ì - unipi.it

Soluzione esercizi passati (permessi 2/3)

ì Risposte alle domande1. Si riesce a vedere il contenuto di visibile (al

proprietario è consentito l'accesso in lettura).2. Non si può vedere il file notizia.txt dentro visibile (non

si può attraversare visibile).3. Non si può vedere il contenuto di segreta .4. Non si può vedere il notizia.txt dentro segreta .

ì adduser utente21. supponendo che la maschera di default sia rwxr-xr-x,

utente può vedere il contenuto della home di utente2 .2. supponendo che la home di utente2 abbia un gruppo

diverso da utente:chmod o-r ~

FabioDelVigna- [email protected]

Page 5: Sistemioperativi ì - unipi.it

Soluzione esercizi passati (permessi 3/3)

groups root

adduser utente3 (login root)

mkdir /home/utente3/temp (root)

ls –l /home/utente3/temp (l’utente proprietario è root e il gruppo proprietario è wheel)

chown utente3:utente3 /home/utente3/templs –l

chgrp admin /home/utente3/temp

rmuser utente2rmuser utente3

FabioDelVigna- [email protected]

Page 6: Sistemioperativi ì - unipi.it

Soluzione esercizi passati (utenti 1/3)l Login con root

adduser –s (pippo)

l vipw : aggiungere la riga (es.):

l pluto::1002:1002::0:0:Pluto:/tmp/pluto:/bin/sh

l Attenzione: scegliere come ID di utente e gruppo un valore non in uso

l vi /etc/group : aggiungere la riga (es.): (vigr)

l pluto:*:1002:

l Attenzione: scegliere come ID di gruppo lo stesso indicato nel punto 1.

l mkdir /tmp/pluto

l cp /etc/skel/* /tmp/pluto

l chown -R pluto:pluto /tmp/pluto

l chmod –R u+rwx,g+rx,o+rx /tmp/pluto

l loggarsi con pluto e cambiare password (comando passwd).

FabioDelVigna- [email protected]

Page 7: Sistemioperativi ì - unipi.it

Soluzione esercizi passati (utenti 2/3)

l pluto non può creare file nella home di pippo con i permessi default. Quindi, dato che non appartengono allo stesso gruppo, bisogna aggiungere il permesso in scrittura per la sezione others

l chmod o+w /home/pluto

l chmod o+w /home/pippo

l Una soluzione migliore consiste nel definire un gruppo a cui appartengono pluto e pippo e assegnare tale gruppo alle home dei due utenti e abilitare il diritto di scrittura (group owner) sulle due cartelle. l su root (oppure logout, login con root) l vi /etc/group : aggiungere la riga (es.):l floppyusr:*:1003:pluto

FabioDelVigna- [email protected]

Page 8: Sistemioperativi ì - unipi.it

Soluzione esercizi passati (utenti 3/3)

l Le nuove impostazioni sui gruppi diventano effettive al nuovo login, come si può osservare dalla seguente sequenza di comandi:l idl logoutl login con plutol id

l L'output prodotto dal comando id è diverso nei due casi (solo nel secondo viene mostrato il gruppo al quale pluto è stato aggiunto).

l su root (oppure logout, login con root) l mkdir /tmp/floppyl chown :floppyusr /tmp/floppyl chmod g+rwx,o-rwx /tmp/floppy

FabioDelVigna- [email protected]

Page 9: Sistemioperativi ì - unipi.it

X Window System

ì creato dalMITnel 1984.

ì fornisce l'ambiente ei componenti dibaseperleinterfaccegrafiche:ì disegno espostamento delle finestre sullo schermoì l'interazione conil mouseelatastiera

ì nongestisce l'interfaccia grafica utente olostilegrafico delleapplicazioniì questi aspetti sono gestiti direttamente daogni singola

applicazione

ì trasparenza direte

FabioDelVigna- [email protected]

Page 10: Sistemioperativi ì - unipi.it

X Window System (2)

ì Xusa unmodello client/server:ì il serverXcomunica congli altri programmi (client)ì Ilserveraccetta richieste peroutputgrafici (finestre)

einputdall'utente (dalla tastiera,il mouseodaltouchscreen).

ì IlserverXpuò essere:ì unprogramma disistema che controlla l'output

videodiunPCì uncomponente hardwarededicatoì un'applicazione che mostra dati su una finestra diun

altro sistema grafico.

FabioDelVigna- [email protected]

Page 11: Sistemioperativi ì - unipi.it

X Window System (3)

ì Ilprotocollo dicomunicazione tra servereclientoperainmodo trasparente rispetto alla rete:ì entrambi possono risiedere sulla stessa

macchina osu altre,anche conarchitettureesistemi operativi differenti

ì il servered il clientpossono anchecomunicare inmodo sicuro attraverso laretesfruttando untunnelcifrato (SSH).

FabioDelVigna- [email protected]

Page 12: Sistemioperativi ì - unipi.it

Patch, Diff e Make

ì Nei sistemi Unixsono disponibili strumenti perlosviluppo diprogetti software:ì Make,percostruire programmi apartire daun

insieme disorgentiì Patch eDiff,perconfrontare emodificare (patchare)

filetestualiì Programmi pergestire losviluppo concorrente di

codice (SVN,CVS,Git esimili)

FabioDelVigna- [email protected]

Page 13: Sistemioperativi ì - unipi.it

Diff e Patch

FabioDelVigna- [email protected]

Page 14: Sistemioperativi ì - unipi.it

Patch

ì Siutilizza permodificare codice inmanieraautomatizzata.

ì Esempio diuso:ì Unsoftware,sottoformadicodice sorgente,non

gira su unsistema .ì Lemodifiche sono distribuite sottoformadi“patch”

alcodice originale.ì Conpatchsi può patchare il codice originale.

FabioDelVigna- [email protected]

Page 15: Sistemioperativi ì - unipi.it

Esempio di uso patch

patch [options] [originalfile [patchfile]]

patch < file.patch →patch“unified”

patch file.txt < file.patch

patch -R < file.patch

Attenzioneailivelli(gerarchiacartelle)delfiledipatchchesihannonelcasosiapplichinopatchainterecartelle(opzione-p[level]).

FabioDelVigna- [email protected]

Page 16: Sistemioperativi ì - unipi.it

diff 1/2

ì Diff serveperconfrontarefile.

ì Confronto“manuale”visivo

ì Generazionefilepatch.

FabioDelVigna- [email protected]

Page 17: Sistemioperativi ì - unipi.it

diff 2/2

ì diff file1 file2 ì differenze (riga perriga)tra i duefile

FabioDelVigna- [email protected]

Page 18: Sistemioperativi ì - unipi.it

Esempio di uso diff

diff -u file_orig.c file_nuov.c > orig.patch

diff -ruN cart_orig/ cart_nuov/ > orig.patch

ì L'opzione -u creailfilepatchinformatounificato(unified).

FabioDelVigna- [email protected]

Page 19: Sistemioperativi ì - unipi.it

diff

ì Nelcasopiùsemplice,l’outputprodottodadiffusaFROM-FILEeTO-FILEpergenerareunfiledidifferenze

ì ‘-’staperstandardinput

ì diff3 confronta3fileallavolta

ì sdiff side-by-sidemergedeifile

ì $ info diff

FabioDelVigna- [email protected]

Page 20: Sistemioperativi ì - unipi.it

Archiviazione e compressione

FabioDelVigna- [email protected]

Page 21: Sistemioperativi ì - unipi.it

Archiviazione -tar

ì tar=TapeARchive

ì Unfiletar è una raccolta difilee/odirectory

ì tar [azione][switch] [archivio] [file]

ì tar compresso (.tgz o.tar.gz)è diventatostandardperil passaggio didati tra sistemi Unix.

FabioDelVigna- [email protected]

Page 22: Sistemioperativi ì - unipi.it

tar - Opzioni

ì Azione/funzioneì c:creaì x:estraeì t:visualizza il contenuto diunarchivio

ì switchì v:verboseì z:comprime congzipì j:comprime conbzip2ì f:file

ì comeultima opzioneì n:comportamento nonricorsivo

FabioDelVigna- [email protected]

Page 23: Sistemioperativi ì - unipi.it

tar - Creazione

ì tar –cvf archivio.tar sorgente

ì tar -czvf archivio.tar.gz ~/archivio/*

ì archivio.tar:filedacreare

ì sorgente:contenuto dell'archivio

FabioDelVigna- [email protected]

Page 24: Sistemioperativi ì - unipi.it

tar - Visualizzazione

ì tar -tvf filename.tar

ì Elenca il contenuto difilename.tar

FabioDelVigna- [email protected]

Page 25: Sistemioperativi ì - unipi.it

tar - Estrazione

ì tar –xvf archivio.tar destinazione

ì tar -xzvf archivio.tar.gz

ì Nonrimuove l'archivio,macrea copie delsuocontenuto

FabioDelVigna- [email protected]

Page 26: Sistemioperativi ì - unipi.it

gzip and gunzip

ì Programma dicompressione

ì gzip archivio archivio.gz

ì gzipì Utilitydicompressione

ì gunzipì Utilitydidecompressione

FabioDelVigna- [email protected]

Page 27: Sistemioperativi ì - unipi.it

bzip2 and bunzip2

ì bzip2ì Utilitydicompressione

ì bunzip2ì Utilitydidecompressione

ì bzip2 archivio archivio.bz2

ì Rapporto dicompressione migliore digzip

FabioDelVigna- [email protected]

Page 28: Sistemioperativi ì - unipi.it

Archivi - path

ì Ifilevengonomemorizzaticolpath

ì Non vengonoeffettuaticontrollidioverwrite

ì -C nome_directory:estraeidatinelladirectoryspecificata

ì Senonsispecificaladestinazionesiusaladirectorycorrenteedilpath nell’archivio

FabioDelVigna- [email protected]

Page 29: Sistemioperativi ì - unipi.it

Ricerca di file

FabioDelVigna- [email protected]

Page 30: Sistemioperativi ì - unipi.it

find

ì Ricercaall’internodipercorsiifilesecondolecondizioniindicate

ì Lecondizionisonolegateall’apparenzaesternaenonalcontenuto

FabioDelVigna- [email protected]

Page 31: Sistemioperativi ì - unipi.it

find

ì find [percorso…] [espressione]

ì percorso…ì insieme dipercorsi separati daspazi

ì espressioneì insieme ditesteazioni separati daoperatori

FabioDelVigna- [email protected]

Page 32: Sistemioperativi ì - unipi.it

Espressioni

[opzione…] [condizioni]

ì Opzioneì Alterail comportamento delprogramma

ì Condizioniì Espressioni conrisultati logici

ì Perconcatenare più condizioni si usano gli operatori booleani

ì defaultè l’AND logico (-and)

FabioDelVigna- [email protected]

Page 33: Sistemioperativi ì - unipi.it

Condizioni

ì -nameschemaì TRUEseil nome delfilecorrispondeì si possono utilizzare i caratteri *e?

ì -size[+|-]n[b|c]ì TRUEseladimensione delfileè uguale (maggiore +

ominore -)anunità dispazio

ì -typetì TRUEseil fileè deltipo specificato (d,f,l)

FabioDelVigna- [email protected]

Page 34: Sistemioperativi ì - unipi.it

Condizioni

ì -userutenteì TRUEselarisorsa appartiene autente

ì -groupgruppoì TRUEseappartiene algruppo ”gruppo”

ì -perm[-/+]modelloì TRUEsei permessi corrispondono esattamente al

modello specificato (informaottale osimbolica)

FabioDelVigna- [email protected]

Page 35: Sistemioperativi ì - unipi.it

Operatori booleani di find

ì (espressione)ì Precedenza nell’esecuzione dei test

ì !espressioneì nega un’espressione

ì espressione [-and]espressioneì ANDlogico tra espressioni (può essere omesso)

ì espressione -orespressioneì ORlogico tra espressioni

Usare i caratteri diescapeperproteggere dall’espansione della shell

FabioDelVigna- [email protected]

Page 36: Sistemioperativi ì - unipi.it

Azioni di find

ì Operazioni dacompiere perogni risultato dellascansione.ì -print

ì stampa i nomi dei filetrovati

ì -execcomando [{}][;|+]ì esegue comando suirisultati della ricercaì esegue una istanza delcomando perogni file

trovato (lariga terminata da;)ì con{}i filetrovati vengono passati acomando come

lista (lariga terminata da+)

FabioDelVigna- [email protected]

Page 37: Sistemioperativi ì - unipi.it

Esempi find

find . –name prova\* -print

Cerca i nomi che iniziano conprova

find / -name “lib*” -print

Ricerca in/i nomi iniziano perlib

“\”protegge i metacaratteri

FabioDelVigna- [email protected]

Page 38: Sistemioperativi ì - unipi.it

Esempi find

find /home –name “pro*” ! –type d

ì Escluse ledirectory

ì Ricerca apartire da/homei nomi che iniziano conpro

ì Virgolette usate perevitare che lashelltrasformi pro*inqualcosa didiverso

FabioDelVigna- [email protected]

Page 39: Sistemioperativi ì - unipi.it

Ricerca con locate

locate “nomefile”

ì Esegue una ricerca delfile“nomefile”all'interno di

undatabase

ì Ildatabaseva popolato etenutoaggiornato conil

comando:updatedb

FabioDelVigna- [email protected]

Page 40: Sistemioperativi ì - unipi.it

Ricerca nei file

FabioDelVigna- [email protected]

Page 41: Sistemioperativi ì - unipi.it

grep

§ grep [opzioni] “stringa” nome_file ...§ Cercalerighecontenentistringa

§ grep “pippo” pluto§ Visualizzalepartidelfilepluto incuicomparela

parolapippo.

§ grep pippo *§ Cercalaparolapippo intuttiifiledelladirectory

corrente.

FabioDelVigna- [email protected]

Ilcomandogrep è casesensitive.

Page 42: Sistemioperativi ì - unipi.it

grep

ì Èpossibileutilizzareespressioniregolariperlericerche(generalized regularexpression printer)

ì grep 'ri.*o' pluto

ì Cercalestringhecheinizianoperri eterminanocono all'internodelfilepluto.

ì .* indica0(zero)opiùcaratteriqualunque

FabioDelVigna- [email protected]

Page 43: Sistemioperativi ì - unipi.it

Opzioni grep

-i (ignore case)ignoraledistinzionitraminuscoleemaiuscole

-vmostralelineecheNONcontengonol’espressione

-nmetteilnumerodirigadavantiadognirigacheriporta

-criportasoloilconteggiodellelinee

-wverificasoloparoleintere

-x controllalecorrispondenzedilineeintere

FabioDelVigna- [email protected]

Page 44: Sistemioperativi ì - unipi.it

Metacaratteri (1 di 2)

ì ^ Iniziorigagrep '^d' ls.out

ì $ Finerigagrep '\.c$' ls.out

ì Aggiungereancheilmetacarattere'\'perchéancheilcarattere'.'èunmetacarattere

ì '\'neutralizzailvaloredimetacaratteredelcaratterechelosegueì Percitareletteralmenteilcarattere'\'ènecessarioquindiscriverlo

duevolte:'\\'

FabioDelVigna- [email protected]

metacaratterijollywild-cards

Page 45: Sistemioperativi ì - unipi.it

Metacaratteri (2 di 2)

. unoedunsolocaratterequalunque* zeroopiùoccorrenzedell’espressionecheloprecede

Esempi:ì Ricercareunarigacostituitadallasolastringa

"riga completa":'^riga completa$'

ì Individuaretuttelerighevuotedelfile:'^$'

FabioDelVigna- [email protected]

Page 46: Sistemioperativi ì - unipi.it

Insiemi di caratteri

[s]ì '['e']'sonometacaratteri

ì 's'elencodicaratteriammessi.

ì L'insieme'[s]'soddisfaUNSOLOqualunquecaratterecompresonell'elencos.

ì Negliinsiemi'[s]'sipossonospecificareintervallidicaratteriusandoilcarattere'-’

FabioDelVigna- [email protected]

Page 47: Sistemioperativi ì - unipi.it

Esempio

grep '1[2,3]:[0-5][0-9]' ls.out

ì ilprimocaratteredellastringacercatadeveessereletteralmenteun’1’

ì ilsecondopuòessereun'2' oun'3’

ì ilterzodeveessereletteralmenteun':’

ì ilquartopuòessere'0' o'1' o'2' o'3' o'4' o'5’

ì ilquintodeveessereunacifracompresatra'0' e'9' (estremicompresi).

FabioDelVigna- [email protected]

Page 48: Sistemioperativi ì - unipi.it

Esercizio

FabioDelVigna- [email protected]

Page 49: Sistemioperativi ì - unipi.it

Esercizio 1

ì Creareduefileditesto,concontenutodialmeno5righe(chiamarliargv1.sheargv2.sh).

ì Diffì Creareunfilepatchchepermetta,seapplicatoa

argv1.shdiottenerelostessocontenutodiargv2.sh

ì Patchì Applicarelapatchcreatacondiff alfileargv1.shì Rimuoverelapatchdaargv1.sh

FabioDelVigna- [email protected]

Page 50: Sistemioperativi ì - unipi.it

Esercizio 2

ì Archiviazione ecompressioneì creare nella home unarchivio compresso informato gzip dinome

config.tgz contenente i fileconestensione conf presenti nellacartella /etc

ì mostrare i filecontenuti nell’archivioì decomprimere l’archivio congunzipì estrarre i filecontenuti conil comando tar

ì Ricerca dei fileì cercare dentro lacartella /etc tutti i fileil cuinome contiene la

stringa sys elacuidimensione è superiore a10 byteì cercare nella root tutti i fileche hanno il bitSUID oSGID attivoì concatenare emostrare avideotutti i file(apartire dalla root)il

cuinome contiene lastringa tabì Ricerca nei file

ì cercare dentro lacartella /etc tutti i fileche contengono lastringafstab

FabioDelVigna- [email protected]

Page 51: Sistemioperativi ì - unipi.it

Riferimenti

ì http://www.x.org/- OfficialsiteoftheXorgfoundation

ì http://www.linfo.org/x.html – introductiontoX

ì http://tools.ietf.org/html/rfc1198– RFC

FabioDelVigna- [email protected]