Alla fine del corso è stato chiesto a tutti i partecipanti di compilare un breve questionario sul corso, per consentirci di capire quali argomenti erano stati più apprezzati, quali aspetti si possono migliorare e se noi eravamo stati in grado di farci capire dagli spettatori (c’erano alcune domande di comprensione a risposta chiusa). Dopo una breve ma intensa fase di l’analisi dei risultati e di data mining vorremmo ora commentare alcuni dei consigli più ricorrenti che gli studenti ci hanno dato e fornire la soluzione alle domande di comprensione.

Commenti al corso

Prepararsi meglio le lezioni e provare i comandi

L’anno prossimo ci impegneremo a usare un solo computer con una sola distribuzione per l’intera durata del corso, in modo da poter provare tutti i comandi prima: quest’anno tra streaming improvvisato (consigliato dai tecnici degli audiovisivi…), pc differenti, prese Ethernet scollegate, server VNC, etc… ci sono stati troppi casi di “su quel pc funzionava, su questo no”

Non bisticciare durante le lezioni, prendere più sul serio quello che si spiega

Ci siamo resi conto del problema e l’anno prossimo cercheremo di preparare meglio le lezioni e metterci d’accordo più precisamente su cosa fare e non fare. Sappiate comunque che nessun N.E.R.D è stato maltrattato durante l’intera durata del corso. Dopotutto siamo molto soddisfatti di quanto realizzato insieme quest’anno.

Le prime lezioni sono state troppo lente, mi annoiavo /
Le ultime lezioni sono state troppo veloci, date troppo per scontato

Qui c’è una divisione abbastanza equa tra chi voleva più velocità e chi meno: cercheremo un compromesso (cosa che di norma scontenta tutti) per pareggiare la velocità dei relatori, in effetti è un problema che abbiamo notato, ma lì tutto dipende dall’inclinazione del relatore. Un consiglio? Fermateci o mostratevi partecipi così si va di pari passo.

Parlare di più di sicurezza informatica

Non è un argomento “base”, per questo non abbiamo detto molto, ma se effettivamente interessa faremo qualche accenno in più o ne parleremo nel corso avanzato.

Dare degli esercizi da svolgere a casa e/o durante la lezione

Pensavo che nessuno avrebbe avuto voglia di svolgerli, e invece… l’anno prossimo recupereremo, aggiorneremo e consiglieremo i pdf di esercizi usati negli anni precedenti e cercheremo di lasciare più tempo in aula per provare le cose (meno carrellate di comandi), come già doveva essere secondo i piani iniziali.

Questi erano i suggerimenti più comuni, ma li ho letti tutti uno a uno e ne ho trovati altri che personalmente ritengo interessanti e che magari proveremo a seguire, dopo averne discusso con gli altri relatori. Considerate anche che l’ultima edizione del corso è stata nel 2015, poi più nulla fino a quest’anno, ci vorrà un po’ per tornare a regime contando anche che molti relatori sono cambiati rispetto a quelli storici.

Anche dalle risposte alle altre domande abbiamo tratto informazioni utili per la prossima edizione del corso base: ad esempio c’è molto più interesse per SSH e per la gestione degli archivi che per journalctl e le variabili d’ambiente quindi con ogni probabilità ridimensioneremo quelle lezioni di conseguenza. Oppure che ci sono molte più persone che useranno GNU/Linux per ragioni lavorative/di studio sul proprio computer piuttosto che su un server (113 vs 69): anche questo servirà a decidere quanto spazio dedicare ai vari argomenti.

P.s. l’uso di “nickname” tra i relatori, che ha fatto “cadere le braccia” a qualcuno, è una lunga tradizione di NetStudent, e chi siamo noi per andare contro alla tradizione? 😉

Soluzioni alle domande di comprensione™

Qual è il comando o sequenza di tasti per uscire da vi?

  • Ctrl+C
  • Esc
  • :q
  • :e
  • :u!

(68% giusta, 22% sbagliata, 10% astenuti)

Con :q. Ctrl+c in generale termina qualsiasi comando ma non vi, esc passa dalla modalità di inserimento a quella di navigazione.

A cosa serve il comando sudo?

  • A eseguire un comando come amministratore
  • A eseguire un comando come un altro utente
  • A cambiare utente
  • Ad effettuare l’autenticazione tramite un altro account locale

(98% giusta, 2% sbagliata, 6% astenuti)

Quasi tutti hanno messo “A eseguire un comando come amministratore”, che è quello che vi abbiamo detto e che dovrete ricordarvi se userete GNU/Linux in futuro. Anche “A eseguire un comando come un altro utente” era giusto, si può specificare quale tramite il parametro -u e se non si specifica nulla viene utilizzato l’utente root (amministratore). A voler essere pignoli ci sono modi per fare anche le altre due operazioni con sudo, ma non è il suo scopo principale e sarebbe meglio usare altro.

Che comando si può utilizzare per visualizzare un elenco dei file nella directory attuale?

  • ls (LiSt)
  • ln (List Now)
  • ld (List Directory)
  • lh (List Here)
  • dir
  • sudo rm -rf –no-preserve-root /

(8% astenuti)

Il comando che vi abbiamo fatto vedere era ls e il 77% di voi ha risposto quello. Tuttavia esiste anche dir che fa la stessa cosa e a volte si trova anche lh come alias di ls , anche se non credo che stia per “List Here” (quello me lo sono inventato sul momento).

Invece ln serve a creare collegamenti e ld è un componente del compilatore GCC (l’ho messo solo come trabocchetto, non ne abbiamo parlato).

Se devo cercare la stringa “asd” all’interno del file esempio.txt, che comando posso usare?

  • find “asd” esempio.txt
  • grep “asd” esempio.txt
  • search “asd” esempio.txt
  • locate “asd” esempio.txt

(50% giusta, 34% sbagliata, 17% astenuti)

Il comando corretto è grep, che cerca una stringa all’interno di un file. find invece cerca i file stessi in base al nome o ad altre caratteristiche (data di ultima modifica, permessi, dimensione, etc…). Di locate non abbiamo parlato ma è simile a find , search non credo che esista o almeno non è installato di default.

Cosa fa il comando nmap?

  • Visualizza informazioni sulle interfacce di rete del computer locale (Network MAP)
  • Visualizza informazioni sulle interfacce di rete di un computer remoto (Network MAPper)
  • Converte un nome di dominio in un indirizzo IP (Name MAP)
  • Converte un nome utente in un ID numerico univoco utilizzato sul filesystem (Name MAPper)
  • Volevo consultare il manuale, ma non ho quel comando installato di default

(32% giusta, 32% sbagliata, 35% astenuti o “non ce l’ho installato”)

Visualizza informazioni sull’interfaccia di rete di un computer remoto e lo fa mandandogli vari pacchetti sulla rete e osservando come risponde. È un comando “aggressivo”, che si usa contro i computer altrui e al proprietario di solito non fa piacere: se il computer è mio, è più facile entrare e visualizzare informazioni sulle interfacce di rete locali con ip a o ss o netstat che sono ben più dettagliati, anche per questo di solito non lo trovate installato. Si può teoricamente usare contro il proprio computer, ma non ha molto senso.

La conversione di un nome di dominio in un IP è compito dei server DNS, che si possono interrogare con dig o nslookup .

Sui sistemi GNU/Linux, in generale, quando si esegue un aggiornamento del sistema (e.g. con apt upgrade)…

  • Viene scaricato soltanto un elenco di pacchetti disponibili (la copia locale del database)
  • Vengono aggiornati soltanti i programmi essenziali di sistema, mentre gli altri sono dotati di un proprio aggiornatore automatico
  • Vengono aggiornati tutti i programmi, purché installati tramite il package manager

(48% giusta, 36% sbagliata, 17% astenuti)

Vengono aggiornati tutti i programmi installati tramite il package manager: anche quelli essenziali di sistema, anche il kernel, anche l’umile ls che sta in /bin, anche Firefox e LibreOffice e VLC, tutti. È lo stesso principio delle app sugli smartphone, alla fine: è lo store o il package manager ad aggiornare tutto, invece di dotare ogni programma di un proprio aggiornatore.

Il database locale dei pacchetti disponibili viene aggiornato con apt update , che purtroppo è simile (update/upgrade) e potrebbe aver tratto in inganno qualcuno.

In presenza di un file di testo chiamato esempio.txt, il comando “cat esempio.txt > less”…

  • Copia il contenuto di esempio.txt in un file chiamato less
  • Copia il contenuto di esempio.txt e lo apre in un visualizzatore di testo (less)
  • Apre il file esempio.txt in un editor di testo (less)
  • Apre il file esempio.txt in un visualizzatore di testo (less)
  • Restituisce un errore, in quanto non si può utilizzare > in questo contesto

(25% giusta, 48% sbagliata, 27% astenuti)

cat apre il file e copia il contenuto da qualche parte. Con > dite al terminale dov’è quel “da qualche parte”: il terminale sa che qualsiasi cosa dopo > è il nome di un file, quindi crea nella directory attuale un file chiamato less e cat copia il contenuto lì dentro.

Se invece avessi usato cat esempio.txt | less , poiché il terminale sa che dopo | c’è il nome di un comando, sarebbe andato a cercare il file eseguibile di less, l’avrebbe avviato e cat avrebbe passato il contenuto del file a less.

Sui sistemi GNU/Linux, i file di configurazione di solito si trovano in…

  • /opt
  • /bin
  • /conf
  • /etc
  • “/C/Documents and Settings/Local/AppData”

(34% giusta, 55% sbagliata, 11% astenuti)

Non mi aspettavo un risultato del genere, soprattutto perché quasi tutti hanno trovato “facile” e “interessante” la lezione sul filesystem!
I file di configurazione stanno in /etc, mentre in /bin ci sono i file eseguibili dei programmi, /opt esiste ma non ne abbiamo parlato e non serve a quello e /conf non esiste proprio.

Detto questo ringraziamo tutti coloro che hanno partecipato al corso base e speriamo di rivedere almeno qualcuno di voi a quello avanzato. Alla prossima!

quel_tale e Oiras0r