Intro a Linux tenuta all'università degli studi di Napoli Federico II. Speaker: Gabriele Previtera - https://www.linkedin.com/in/gabriele-previtera-6657648b/
Videocorso in italiano su Udemy!
https://www.udemy.com/corso-linux-per-sviluppatori-web-lamp-apache-php-mysql/?couponCode=SLIDES10
- Installare un server linux
- Lavorare con la linea di comando
- Gestione gruppi, utenti e permessi
- Bash scripting
- Espressioni regolari
- Apache, NGnix &Https
- Installare PHP & MySql
- Cron e crontab
Linux Capabilities: Un miglior root di SUID root.
Traduzione in lingua italiana delle diapositive presentate alla conferenza organizzata dalla Linux Foundation LinuxCon2014, Düsseldorf, 15 ottobre 2014.
✦ Introduzione
✦ Connessioni TCP lato client: la classe
Socket
✦ Connessioni TCP lato server: la classe
ServerSocket
✦ Struttura di un server multi-threaded
Con un approccio pratico, e ricco di esempi semplici per illustrare bene i concetti, impara le basi del linguaggio di scripting Bash, ormai divenuto uno standard de facto in termini di scripting di shell (Shell Scripting).
La presentazione si compone di 12 lezioni / capitoli:
1 - Introduzione
2 - Primi passi
3 - Variabili
4 - Array
5 - Aritmetica
6 - Test
7 - Costrutti condizionali
8 - Cicli iterativi
9 - Funzioni
10 - Quoting
11 - Terminare uno script
12 - Debugging
Per un totale di 98 diapositive
Videocorso in italiano su Udemy!
https://www.udemy.com/corso-linux-per-sviluppatori-web-lamp-apache-php-mysql/?couponCode=SLIDES10
- Installare un server linux
- Lavorare con la linea di comando
- Gestione gruppi, utenti e permessi
- Bash scripting
- Espressioni regolari
- Apache, NGnix &Https
- Installare PHP & MySql
- Cron e crontab
Linux Capabilities: Un miglior root di SUID root.
Traduzione in lingua italiana delle diapositive presentate alla conferenza organizzata dalla Linux Foundation LinuxCon2014, Düsseldorf, 15 ottobre 2014.
✦ Introduzione
✦ Connessioni TCP lato client: la classe
Socket
✦ Connessioni TCP lato server: la classe
ServerSocket
✦ Struttura di un server multi-threaded
Con un approccio pratico, e ricco di esempi semplici per illustrare bene i concetti, impara le basi del linguaggio di scripting Bash, ormai divenuto uno standard de facto in termini di scripting di shell (Shell Scripting).
La presentazione si compone di 12 lezioni / capitoli:
1 - Introduzione
2 - Primi passi
3 - Variabili
4 - Array
5 - Aritmetica
6 - Test
7 - Costrutti condizionali
8 - Cicli iterativi
9 - Funzioni
10 - Quoting
11 - Terminare uno script
12 - Debugging
Per un totale di 98 diapositive
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Il documento si propone di analizzare le tecniche di base per effettuare il reverse engineering. Verranno inoltre prese in esame le caratteristiche principali di alcuni dei tool utilizzati nel reverse engineering .
Il documento si rivolge a chi ha già buone conoscenze relative alle tecniche con cui si realizza un buffer overflow e spiega più in dettaglio come realizzare shellcode e lo shatter attack.
Dopo una piccola introduzione al linguaggio Groovy, dove verranno illustrate brevemente alcune peculiarità, si passerà ad esaminare le caratteristiche che lo rendono adatto per la generazione di DSL.
Verrà quindi presentato come caso pratico la costruzione di una DSL e sarà mostrato come è possibile embeddarla in un progetto Java.
Chi ha paura della command-line? - WordCamp Roma 2018Marco Chiesi
Negli ultimi decenni le interfacce uomo-macchina dei sistemi informatici si sono evolute incessantemente con l’obiettivo di rendere l’interazione con gli utenti sempre più semplice e intuitiva.
Ci sono però ambiti specifici in cui l’interfaccia a “riga di comando” si dimostra tutt’oggi uno strumento insostituibile. Ne è la dimostrazione il crescente successo del progetto WP-CLI, supportato ufficialmente da WordPress.
Non è indispensabile essere programmatori o sistemisti per trarre un vantaggio diretto e tangibile dall’utilizzo di strumenti basati su riga di comando. Questo talk, dopo una rapida introduzione sull’argomento, presenterà una carrellata di esempi pratici e di semplice applicazione, in cui l’uso della command-line può far risparmiare tantissimo tempo.
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Il documento si propone di analizzare le tecniche di base per effettuare il reverse engineering. Verranno inoltre prese in esame le caratteristiche principali di alcuni dei tool utilizzati nel reverse engineering .
Il documento si rivolge a chi ha già buone conoscenze relative alle tecniche con cui si realizza un buffer overflow e spiega più in dettaglio come realizzare shellcode e lo shatter attack.
Dopo una piccola introduzione al linguaggio Groovy, dove verranno illustrate brevemente alcune peculiarità, si passerà ad esaminare le caratteristiche che lo rendono adatto per la generazione di DSL.
Verrà quindi presentato come caso pratico la costruzione di una DSL e sarà mostrato come è possibile embeddarla in un progetto Java.
Chi ha paura della command-line? - WordCamp Roma 2018Marco Chiesi
Negli ultimi decenni le interfacce uomo-macchina dei sistemi informatici si sono evolute incessantemente con l’obiettivo di rendere l’interazione con gli utenti sempre più semplice e intuitiva.
Ci sono però ambiti specifici in cui l’interfaccia a “riga di comando” si dimostra tutt’oggi uno strumento insostituibile. Ne è la dimostrazione il crescente successo del progetto WP-CLI, supportato ufficialmente da WordPress.
Non è indispensabile essere programmatori o sistemisti per trarre un vantaggio diretto e tangibile dall’utilizzo di strumenti basati su riga di comando. Questo talk, dopo una rapida introduzione sull’argomento, presenterà una carrellata di esempi pratici e di semplice applicazione, in cui l’uso della command-line può far risparmiare tantissimo tempo.
co-authors: Scola Davide and Maia Nicoletta
Small workshop on Inferno, Limbo and the Dis virtual machine.
Inferno is a new operative system developped for creation and support of network systems and distribuited services.
There are three fundamental programming principles: all resources are files in a hierarchic file system, the network is a unic namespace like a file system hierarchic, it uses Styx that is a standard protocol of comunication for local and remote resources.
Limbo is the programming language for the Inferno OS.
The language is Object Based, you can compile it or interpret it with the Dis virtual machine (like Java virtual machine with a JIT compiler).
Limbo has a native support for: array, string, int, float, tuple (like record), channel (linda-like), and other...
The Limbo's channels are used to comunicate with other processes or with thread.
The Dis virtual machine is an environment for Limbo programs and it has important features: CISC architecture, memory-to-memory, many high level types, just in time compiler, ecc...
In the end of presentation there is a comparison between Dis, Java VM and C# .Net VM.
Networking di base, LAN casalinga, installazione e configurazione servizi Samba, Cups, FTP. Sessione Terminal con scripting bash per piccoli automatismi.
A simple introduction to the Python programming language. In Italian. OLD: superseeded by Pycrashcourse 3.1.
Originally presented during the Networking class of the Computer Science course at the University of Parma
BISmark : the broadband internet service benchmarkNaLUG
BISmark is a project that develops an open-source platform for measuring broadband internet performance from within the home gateway router. The platform collects various metrics on latency, jitter, throughput and packet loss through active and passive measurements. It has been deployed on several router models with hundreds of routers currently participating worldwide. The project aims to provide visibility into consumer internet performance and help identify problems.
2. ● Educazione Complementare
○ Fare pratica!
○ Utile per i colloqui
○ Soft Skill
● Linux
○ Esami e Lavoro
○ Scegliere cos’è meglio per te!
● To Be Continued! Stay tuned
Perchè questo seminario!?
3. Perché sono cosi forti:
● Distribuzioni: Kernel + Applicazioni del progetto
GNU
● Progetto GNU e F.O.S.S.
○ 4 Libertà fondamentali
● FreeSoftware vs OpenSource
○ Free come libero!
● Linux e Linus
Cos’è GNU/Linux?
6. Perché sono cosi forti:Black… all the shell have a black background
7. Perché sono cosi forti:Come interagiamo normalmente con un sistema
Shell
Kernel
Hardware
8. Perché sono cosi forti:Shell
● Implementa l’interfaccia a riga di comando ;
● Si tratta di un interprete di comandi che permette all'utente di
comunicare col sistema operativo attraverso una serie di funzioni
predefinite;
● Concatena vari comandi, costruendo l’equivalente di una catena di
montaggio, realizzando così un comando complesso partendo da
comandi più semplici ;
● Permette di eseguire programmi e script .
9. Perché sono cosi forti:Shells???
la shell è un programma come qualsiasi altro pertanto si possono avere
diverse versioni di shell su sistema :
● sh (prima shell dei sistemi Unix);
● bash (shell degli attuali sistemi GNU/Linux);
● ash (shell minimale per sistemi con risorse limitate).
● shell fatte da voi !
10. Perché sono cosi forti:Utility sistema : Filosofia
Ogni strumento necessario al funzionamento del sistema è un
programma, che fa una cosa nel miglior modo possibile!
Ad esempio :
● mv ( move ) ;
● cp ( copy ) ;
● le altre core-utils ( coltellino svizzero ) ;
● interprete dei comandi.
11. Perché sono cosi forti:Shell : Ready ??? GO!!
● Apri terminale
○ Digita i seguenti comandi :
■ ls /;
■ ps ;
■ top ;
■ cat /etc/passwd ;
1
2
3
13. Perché sono cosi forti:
● Regular file [ - ]: un file che contiene dei dati
● Directory [ d ]: contiene una lista di nomi associati a degli inode.
● Symbolic link [ l ]: contiene un riferimento ad un altro file o directory.
● Char Device [ c ]: identifica una periferica ad accesso a caratteri.
● Block device [ b ]: identifica una periferica ad accesso a blocchi.
● fifo o pipe [ p ]:identifica una linea di comunicazione unidirezionale.
● socket [ s ]: identifica una linea di comunicazione bidirezionale.
Everything is a file
14. Perché sono cosi forti:Users and Permission
● Utenti e UID: /etc/shadow
● Gruppi e GUID: /etc/group
● Informazioni sui file: ls -n
15. Perché sono cosi forti:Sudo users
● Root vs Sudo
● Aggiungere un nuovo utente:
○ # adduser nomeutente
● Aggiungerlo al gruppo degli utenti sudo
○ # usermod -aG sudo nomeutente
● visudo /etc/sudoers
○ Definire regole per utenti e gruppi
16. Perché sono cosi forti:Installiamo!
● Sistemi Debian Like : APT,
dpkg (.deb)
● RedHat: yum, DNF (rpm)
● Arch: Pacman
● Multi distribuzione:
○ Snap
○ Flatpack
○ Compilare
○ Script
17. Perché sono cosi forti:Man : reference manuals
● Molti programmi hanno un manuale che ne descrive il suo
comportamento e le opzioni.
● Proviamolo :
○ man ls ;
○ man ps ;
○ man semop;
○ man semget;
○ man top ;
Navigare in man:
● premere “q” per uscire;
● premere “/” per entrare in modalità ricerca
18. Perché sono cosi forti:Struttura di un comando base
ls -a -l --color=no main.c
● ls : comando;
● -a,-l : opzioni in forma abbreviata;
● --color= : opzione in forma estesa;
● no : valore dell’opzione
● main.c valore in input al comando
19. Perché sono cosi forti:La redirezione dell’I/O
● Cosa succede quando un comando viene lanciato?
○ Esso si aspetta di avere disponibili e già aperti i seguenti file :
■ standard input filedescriptor: 0
■ output filedescriptor: 1
■ error filedescriptor: 2
In un sistema GNU/LInux tutto è un FILE!
Cosa è un fd ?
-- man fopen
20. Perché sono cosi forti:Redirezione dell’output sul file
● aprire due finestre di terminale
● nella prima
○ touch test ;
○ tail -f test .
● Nella seconda
○ echo “ciao” > test ;
○ echo “mondo” > test ;
○ echo “ciao mondo” >> test ;
○ cat test ⇐⇒ cat < test .
21. Perché sono cosi forti:Proviamo tail con apache
● # apt-get update
● # apt-cache search apache
● # apt-get install apache2
○ # service apache2 status
○ # service apache2 restart
○ tail -f < /var/log/apache2/access.log
● aprire nel browser 127.0.0.1
Il # indica che il comando deve
essere eseguito come con i
privilegi di superutente.
Il comando sudo sta per super
user do
22. Perché sono cosi forti:Redirezione dell’I/O (NextLevel)
● nella prima finestra:
○ nc -lnvp 4444
● nella seconda
○ cd /etc/
○ bash -i >& /dev/tcp/127.0.0.1/4444 0>&1
■ bash -i : esegue la shell in modalità interattiva ;
■ >&: “ redirezione lo standard output e lo standard error di bash
sulla socket “, invio i risultati dei comandi a nc;
■ 0 >&1: “muove il file descriptor dello standard output della socket
nello standard input del terminale “,(da i comandi a bash!).
/dev/tcp/127.0.0.1/4444
è un file!!
24. Perché sono cosi forti:La pipe “|”
● La pipe
○ ls -al | grep "main.c"
○ ifconfig wlo1 | grep "inet "
○ ifconfig wlo1 | grep "inet " | awk '{print $2}'
25. Perché sono cosi forti:Le variabili
● echo $PATH
● export TEST=”ciao mondo”
○ echo $TEST
○ unset $TEST
● export RES=$( ls -al /bin/ | grep mv | awk '{line=$1" "$3"
"$9;print line}')
○ echo $RES
26. Perché sono cosi forti:Script
Uno script può contenere :
● una semplice lista di comandi
● funzioni
● cicli
● istruzioni condizionali
27. Perché sono cosi forti:Base di uno Script
La prima cosa da indicare in uno script è il percorso dell’interprete che si
vuole utilizzare per eseguire i comandi preceduto dalla direttiva #! .
Ad esempio se si vuole utilizzare bash:
#! /bin/bash
Ogni riga dello script, a meno
che non presenti dei caratteri
di escape, viene interpretata
come un comando!
28. Perché sono cosi forti:Commenti
Le righe di commento iniziano con #.
Ad esempio :
#! Questo è un commento !
29. Perché sono cosi forti:Variabili
Bash è un linguaggio a tipizzazione dinamica, non è richiesto indicare
il tipo dei dati che la variabile conterrà.
Per dichiarare una variabile basta indicare il nome e il valore, utilizzando
la seguente sintassi:
NomeVariabile=Valore Attenzione agli spazi !!
La sintassi di bash non prevede
l’utilizzo degli spazi prima e
dopo il segno di =
30. Perché sono cosi forti:Variabili
Per utilizzare una variabile si utilizza la seguenti sintassi :
$NomeVariabile
# Variabile
X=2019
# Uso della variabile
echo $X
31. Perché sono cosi forti:Stringe
Le stringhe possono andare sia tra “” che tra ‘’.
Quando si usano i ‘’ il parser considera i caratteri speciali di bash come
normali caratteri e non come direttive per la shell.
Ad esempio :
X=2019
echo “Anno : $X” #Stampa il valore della variabile X
echo ‘Anno : $X’ #Stampa $X
32. Perché sono cosi forti:Array
Per definire un array basta sintassi :
NomeArray=(valore1 valore2 ….)
# Array
X=(‘NaLUG’ ‘Workshop’ ‘2019’)
# Uso
echo ${X[*]}
33. Perché sono cosi forti:Uso degli Array
Per gestire un array basta di solito la seguente sintassi :
● ${arr[*]} # Tutti gli elementi nell’array
● ${!arr[*]} # Tutti gli indici dell’array
● ${#arr[*]} # Numero di elementi nell’array
● ${#arr[0]} # Length of item zero
34. Perché sono cosi forti:Variabili di built-in
● $# : Numero di argomenti passati in input
● $$ : pid del comando corrente ;
● $0 : nome del comando in esecuzione ;
● $* (* ∈ N-{0} ) : variabili in ingresso ;
● $@ : Tutti i parametri in ingresso ;
● $? : Stato di uscita dell’ultimo comando.
35. Perché sono cosi forti:Operazioni tra numeri
Bash prevede una sintassi particolare per eseguire operazioni tra
numeri interi, in particolare una qualsiasi operazione va tra $(( ))
X=3
Y=4
#Stampo la somma tra i valori di X e Y
echo “$(( $X+$Y))”
36. Perché sono cosi forti:Comando Test
Il comando test è utilizzato per valutare il valore di un'espressione
logica.
test “ciao” != “Ciao”
test 1 == 2
[ “ciao” != “ciao” ]
Il risultato viene in una delle variabili di built-in della
shell.
in particolare in $? viene salvato il valore di ritorno
dell’ultimo comando eseguito ( 0 eseguito senza
errori )
38. Perché sono cosi forti:Struttura dell’ IF
if [ condizione ] ; then
elif [ condizione ] ; then
else
fi
39. Perché sono cosi forti:Struttura del while e del for
while [ condizione ] do
done
for i in $(seq 0 n) ; do
done
40. Perché sono cosi forti:Esempio
Proviamo a realizzare uno script che ci fornisce l’indirizzo ip di un
interfaccia di rete presente nel nostro sistema.
L’interfaccia viene passata come parametro di input.
41. Perché sono cosi forti:Esempio
#!/bin/bash
#Controllo il numero di parametri in input
if [ $# -eq 1 ]; then
INTERFACE=$1
IP=$(sudo ifconfig $INTERFACE | grep "inet " | awk '{print $2}')
echo “L’ip dell’interfaccia $INTERFACE è $IP”
fi
chmod +x
./getIP.sh wlo1
42. Perché sono cosi forti:Proviamo a fare uno script
Contiamo il numero di occorrenze di una data parola nei file
.txt in una cartella.
43. Perché sono cosi forti:Continua ad esercitarti a casa
● https://explainshell.com
● http://www.pluto.it/files/ildp/HOWTO/Bash-Prog-Intro-HO
WTO/Bash-Prog-Intro-HOWTO.html
● https://www.fis.uniroma3.it/CALCOLO_DOC/unix/appuntil
inux/alndx.htm
44. Perché sono cosi forti:Contattaci
/NaLinuxUsersGroup
http://www.nalug.net
info@nalug.net
45. Perché sono cosi forti:That’s all Folks!
Attribuzione - Non commerciale - Condividi allo
stesso modo
Questa licenza permette a terzi di modificare,
redistribuire, ottimizzare ed utilizzare la tua opera
come base non commerciale, fino a che ti diano il
credito e licenzino le loro nuove creazioni mediante i
medesimi termini