Download - Sistemioperativi ì - unipi.it
![Page 1: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/1.jpg)
ì
FabioDelVigna- [email protected]
Sistemi operativiCorso di Laurea Triennale in Ingegneria Informatica
Lezione 4• Cenni a Xserver• Patch, diff• Tar, gzip, bzip• Find, grep
![Page 3: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/12.jpg)
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 14: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/16.jpg)
diff 1/2
ì Diff serveperconfrontarefile.
ì Confronto“manuale”visivo
ì Generazionefilepatch.
FabioDelVigna- [email protected]
![Page 17: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/17.jpg)
diff 2/2
ì diff file1 file2 ì differenze (riga perriga)tra i duefile
FabioDelVigna- [email protected]
![Page 18: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/19.jpg)
diff
ì Nelcasopiùsemplice,l’outputprodottodadiffusaFROM-FILEeTO-FILEpergenerareunfiledidifferenze
ì ‘-’staperstandardinput
ì diff3 confronta3fileallavolta
ì sdiff side-by-sidemergedeifile
ì $ info diff
FabioDelVigna- [email protected]
![Page 21: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/24.jpg)
tar - Visualizzazione
ì tar -tvf filename.tar
ì Elenca il contenuto difilename.tar
FabioDelVigna- [email protected]
![Page 25: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/26.jpg)
gzip and gunzip
ì Programma dicompressione
ì gzip archivio archivio.gz
ì gzipì Utilitydicompressione
ì gunzipì Utilitydidecompressione
FabioDelVigna- [email protected]
![Page 27: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/27.jpg)
bzip2 and bunzip2
ì bzip2ì Utilitydicompressione
ì bunzip2ì Utilitydidecompressione
ì bzip2 archivio archivio.bz2
ì Rapporto dicompressione migliore digzip
FabioDelVigna- [email protected]
![Page 28: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/28.jpg)
Archivi - path
ì Ifilevengonomemorizzaticolpath
ì Non vengonoeffettuaticontrollidioverwrite
ì -C nome_directory:estraeidatinelladirectoryspecificata
ì Senonsispecificaladestinazionesiusaladirectorycorrenteedilpath nell’archivio
FabioDelVigna- [email protected]
![Page 30: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/30.jpg)
find
ì Ricercaall’internodipercorsiifilesecondolecondizioniindicate
ì Lecondizionisonolegateall’apparenzaesternaenonalcontenuto
FabioDelVigna- [email protected]
![Page 31: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/31.jpg)
find
ì find [percorso…] [espressione]
ì percorso…ì insieme dipercorsi separati daspazi
ì espressioneì insieme ditesteazioni separati daoperatori
FabioDelVigna- [email protected]
![Page 32: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/39.jpg)
Ricerca con locate
locate “nomefile”
ì Esegue una ricerca delfile“nomefile”all'interno di
undatabase
ì Ildatabaseva popolato etenutoaggiornato conil
comando:updatedb
FabioDelVigna- [email protected]
![Page 41: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/43.jpg)
Opzioni grep
-i (ignore case)ignoraledistinzionitraminuscoleemaiuscole
-vmostralelineecheNONcontengonol’espressione
-nmetteilnumerodirigadavantiadognirigacheriporta
-criportasoloilconteggiodellelinee
-wverificasoloparoleintere
-x controllalecorrispondenzedilineeintere
FabioDelVigna- [email protected]
![Page 44: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/45.jpg)
Metacaratteri (2 di 2)
. unoedunsolocaratterequalunque* zeroopiùoccorrenzedell’espressionecheloprecede
Esempi:ì Ricercareunarigacostituitadallasolastringa
"riga completa":'^riga completa$'
ì Individuaretuttelerighevuotedelfile:'^$'
FabioDelVigna- [email protected]
![Page 46: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/46.jpg)
Insiemi di caratteri
[s]ì '['e']'sonometacaratteri
ì 's'elencodicaratteriammessi.
ì L'insieme'[s]'soddisfaUNSOLOqualunquecaratterecompresonell'elencos.
ì Negliinsiemi'[s]'sipossonospecificareintervallidicaratteriusandoilcarattere'-’
FabioDelVigna- [email protected]
![Page 47: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/47.jpg)
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 49: Sistemioperativi ì - unipi.it](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/50.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012716/61aeb413e00599768404cd35/html5/thumbnails/51.jpg)
Riferimenti
ì http://www.x.org/- OfficialsiteoftheXorgfoundation
ì http://www.linfo.org/x.html – introductiontoX
ì http://tools.ietf.org/html/rfc1198– RFC
FabioDelVigna- [email protected]