User Tools

Site Tools


its:gnu-linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
its:gnu-linux [2024/04/19 12:51] – [Lezione 2 - 19 aprile 2024] - aggiunta connessione remota ferodaits:gnu-linux [2024/04/25 06:00] (current) – [Lezione 4 - 30 aprile 2024] - elencati argomenti bash feroda
Line 3: Line 3:
 ===== Argomenti ===== ===== Argomenti =====
  
-  - <del>Linux da utente</del> +<del>Linux da utente</del> 
-  Linux da amministratore di sistema + 
-    - Terminale +==== Linux da amministratore di sistema ==== 
-      - Generali: <TAB>, <UP>, <DOWN>, <CTRL+C>  + 
-      - man, history +  - Terminale 
-      - ls, cd, cat, head, tail, lsb_release -a +    - Generali: <TAB>, <UP>, <DOWN>, <CTRL+C>  
-    - Accesso remoto +    - man, history 
-      - ssh +    - ls, cd, cat, head, tail, lsb_release -a 
-    - FHS - La gerarchia delle directory +  - Accesso remoto 
-      - /home,/root +    - ssh 
-      - /etc,/var,/usr,/tmp +  - FHS - La gerarchia delle directory 
-      - /proc,/sys +    - /home,/root 
-      - /dev +    - /etc,/var,/usr,/tmp 
-      - /usr/local,/opt +    - /proc,/sys 
-    - Gestione utenti non privilegiati e privilegiati +    - /dev 
-      - sudo +    - /usr/local,/opt 
-    - Installazione/rimozione pacchetti +  - Gestione utenti non privilegiati e privilegiati 
-      - apt, apt-get, apt-cache, apt-file +    - sudo 
-    - Download file remoti +  - Installazione/rimozione pacchetti 
-      - via ssh: scp +    - apt, apt-get, apt-cache, apt-file 
-      - via web: wget e curl +  - Download file remoti 
-    - Gestione dei servizi con systemd +    - via ssh: scp 
-      - systemctl, resolvectl, hostnamectl, timedatectl +    - via web: wget e curl 
-    - Gestione del firewall +  - Gestione dei servizi con systemd 
-      - la soluzione di Ubuntu ''ufw'' = "Uncomplicated firewall" +    - systemctl, resolvectl, hostnamectl, timedatectl 
-      - firewall standard ''nftables'' (più noto come ''iptables''+  - Gestione del firewall 
-    - Configurare il sistema +    - la soluzione di Ubuntu ''ufw'' = "Uncomplicated firewall" 
-      - modifica dei file di testo con vim o vi +    - firewall standard ''nftables'' (più noto come ''iptables''
-      - ricerca contenuti con grep +  - Configurare il sistema 
-      - ricerca files con find +    - modifica dei file di testo con vim o vi 
-      - sospensione/riattivazione con <CTRL+Z>, bg e fg +    - ricerca contenuti con grep 
-  Linux da amministratore di rete +    - ricerca files con find 
-    - i protocolli ''/etc/protocols'' +    - sospensione/riattivazione con <CTRL+Z>, bg e fg 
-    - i servizi e le porte di default ''/etc/services'' + 
-    - i socket attivi ''ss'' e ''netstat'' +==== Linux da amministratore di rete ==== 
-    - la propria configurazione di rete ''ip addr list'' + 
-    - le proprie interfacce di rete ''ip link show'' +  - i protocolli ''/etc/protocols'' 
-    - test di raggiungibilità ''ping'' +  - i servizi e le porte di default ''/etc/services'' 
-    - test di connessione ad un servizio ''nc'', ''telnet'' +  - i socket attivi ''ss'' e ''netstat'' 
-    - test di connessione ssl/tls con ''openssl'' +  - la propria configurazione di rete ''ip addr list'' 
-    - test di richieste https ''curl'' +  - le proprie interfacce di rete ''ip link show'' 
-    - scansione delle porte ''nmap'' +  - test di raggiungibilità ''ping'' 
-    - analisi del traffico di rete ''tcpdump'', ''wireshark''+  - test di connessione ad un servizio ''nc'', ''telnet'' 
 +  - test di connessione ssl/tls con ''openssl'' 
 +  - test di richieste https ''curl'' 
 +  - scansione delle porte ''nmap'' 
 +  - analisi del traffico di rete ''tcpdump'', ''wireshark'' 
 +===== Possibili attività/piccoli progetti =====
  
-TODO: 
  
   - **Riusciamo ad installare un Dokuwiki?**   - **Riusciamo ad installare un Dokuwiki?**
Line 53: Line 57:
   - **Predisposizione macchina GNU/Linux per il corso di fondamenti di programmazione**   - **Predisposizione macchina GNU/Linux per il corso di fondamenti di programmazione**
  
-===== Lezione 2 - 19 aprile 2024 =====+===== Servizi, protocolli e porte di default =====
  
-**Obiettivi**:+Qui trovate i servizi utilizzati o citati durante il corso:
  
-  - Utilizzo del terminale e introduzione alla shell +  * dove leggete "porta" è da intendersi come "porta di default"; 
-  - Utenti, creazione e la directory $HOME +  * dove leggete "client" è da intendersi come "software client di riferimento"; 
-  - I Pacchetti e i Repository. Installazione/Disinstallazione/Aggiornamento +  * dove leggete "server" è da intendersi come "software server di riferimento";
-  - La versione della distribuzione+
  
 +| Servizio        ^ alias (aka)                ^ proto ^ porta  ^ client              ^ server ^ pkg client ^ pkg server ^
 +^ Secure Shell   | OpenSSH                    | ssh | 22   | ssh                 | sshd | openssh-client | openssh-server |
 +^ Remote Desktop | Connessione Remota Windows | rdp | 3389 | rdesktop/xfreerdp | xrdp | rdesktop/xfreerdp | xrdp |
 +^ IMAPs | Consultazione Email (sicuro) | imaps | 993 | thunderbird/mutt | dovecot | thunderbird (snap) | dovecot-imapd |
 +^ <del>IMAP</del> | Consultazione Email (insicuro) | imap | 143 | ::: | ::: | ::: | ::: |
  
-Attivita':+===== Lezione 4 - 30 aprile 2024 =====
  
-  - its-student accede in ssh alla macchina Ubuntu1 +  * Rispolveriamo la pipe ''|'' e le pipeline (sequenze di comandi separati dalla pipe) utilizzati per comporre articolati comandi da una riga di shell (di solito la bash e per questo detti ''oneliner bash'' o più sinteticamente ''oneliner''
-  its-student installa vimcodegcc e tmuxxrdp  +  * Dopo l'esercitazione, ripasseremo velocemente FHS  
-  its-student crea un utente per ogni alunno+  * Poi continueremo con 2 parole sulla ''bash'' e altri comandi base: 
 +    * Command substitution ''$()'' (o ''`'', ma meglio la forma con il ''$''
 +    * ''awk'' come ''cut'' superpotenziato: https://stackoverflow.com/a/36211753/720743 
 +    * ''sed'' come arma letale per processare le righe dello standard input o di uno o più files 
 +    * Cicli in Bash 
 + 
 +==== Esercitazione ==== 
 + 
 +**Scenario**: Il prof ha esportato 1,3TB di posta elettronica da un server ad un altro via IMAP. Il formato di destinazione è il classico "Maildir" in cui le cartelle che appaiono sul client di posta elettronica sono esattamente cartelle sul filesystem all'interno di una directory "Maildir"
 + 
 +Riusciresti a dire cosa voleva monitorare il prof. (comando ''watch'' da esaminare alla fine dell'esercizio) con la sequenza di comandi (o meglio pipeline) che progressivamente ha raffinato qui si seguito tra virgolette? 
 + 
 +<code> 
 +root@new-mail:/home/ced# watch -n10 "du -sh Maildir/.MailSt*" 
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*"                                                                                                                      
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | grep G"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | tail | grep G"  
 +root@new-mail:/home/ced# watch -n300 "du -sch Maildir/.MailSt* | tail "  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | tail -n30 | grep Posta"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | tail -n20 | grep Posta"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | tail -n20"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | sort -n tail -n20"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | sort -n | tail -n20"  
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | grep G | sort -n | tail -n20"  
 +</code> 
 + 
 +Nota: alcune righe potrebbero non aver dato il risultato sperato, per questo sono state rilanciate in modo più opportuno. 
 + 
 +**Suggerimento banale se ti trovi in difficoltà su comandi o opzioni**: usa il ''man'' oppure esegui il comando con ''-h'' (o ''--help''). Se proprio non riesci a sbloccarti fai una ricerca webma a questo punto è meglio se chiedi a ChatGPT o Copilotperché almeno ti possono chiarire la situazione. Tuttavia non farlose vuoi imparare a cavartela da solo, prima di aver provato con il ''man'' o il ''-h''. 
 + 
 +===== Lezione 3 23 aprile 2024 ===== 
 + 
 +Il prof crea la macchina Ubuntu2
  
-Opzionali: 
-  - Creazione macchina Ubuntu2 
   - Accesso in ssh alla macchina Ubuntu2   - Accesso in ssh alla macchina Ubuntu2
 +  - Ripetizione delle operazioni della lezione precedente in autonomia ed esplorando, grazie al comando ''man'' e all'opzione ''--help'', i seguenti comandi:
 +    - ls, cat, head e sort, tail e sort, lsb_release -a, grep
 +    - cd, mkdir
 +  - Ognuno espone un comando esplorato e una opzione. Potete dire da quale directory viene eseguito?
 +  - Impostare l'hostname con hostnamectl
 +
  
 ==== Integrazione al contesto della Lezione 1 ==== ==== Integrazione al contesto della Lezione 1 ====
Line 87: Line 132:
     * [[https://agilemanifesto.org/display/000000027.html|La firma di David Lillie]]      * [[https://agilemanifesto.org/display/000000027.html|La firma di David Lillie]] 
  
 +
 +===== Lezione 2 - 19 aprile 2024 =====
 +
 +==== Obiettivi ====
 +
 +  - Utilizzo del terminale ed accesso remoto
 +  - Utenti, creazione
 +  - I Pacchetti e i Repository. Installazione/Disinstallazione/Aggiornamento
 +
 +==== Attività ====
 +
 +Parte 1:
 +
 +  - its-student accede in ssh alla macchina Ubuntu1 (192.168.6.203)
 +    - ssh its-student@192.168.6.203
 +  - its-student crea un utente per ogni alunno
 +    - sudo adduser tuonick
 +    - id tuonick
 +  - its-student rende l'utente alunno privilegiato
 +    - sudo adduser tuonick sudo
 +    - id tuonick
 +    - ls /home/
 +  - its-student fa logout (logout o exit o CTRL+D) dalla macchina Ubuntu1
 +  - ogni alunno accede via ssh alla macchina Ubuntu1
 +
 +Parte 2:
 +
 +  - ogni alunno installa vim, code, gcc e tmux, xrdp rispettivamente
 +  - test dei comandi appena installati
 +  - test di accesso remoto al sistema Ubuntu tramite Connessione Desktop Remoto di Windows
  
  
its/gnu-linux.1713531061.txt.gz · Last modified: 2024/04/19 12:51 by feroda