Progetti

Tips Of The Week – Comando Chmod

Comando Chmod 000

chmod (abbreviazioned di change mode) è un comando che modifica i permessi di file e directory.

Tutti i file in Linux hanno una serie di permessi assegnati R = Read/Lettura , W = Write/Scrittura , X = Execute/Esecuzione.

Ogni permesso ha un valore numerico unico, corrispettivamente illustrato qui sotto:

R W X
4 2 1

Considerando quanto detto, per stabilire un permesso bisogna sommare il valore del permesso da attribuire:

Permessi di lettura, scrittura ed esecuzione
R W X Valore ottale
4 + 2 + 1 = 7

Permessi di lettura e scrittura

R W X Valore ottale
4 + 2 + 0 = 6

Permesso di sola lettura
R W X Valore ottale
4 + 0 + 0 = 4

Nessun permesso 
R W X Valore ottale
0 + 0 + 0 = 0

Qui troviamo una tabella dei permessi possibili:

R W X
0 0 1 1 – – X Esecuzione
0 2 0 2 – W – Scrittura
0 2 1 3 – W X Scrittura ed esecuzione
4 0 0 4 R – – Lettura
4 0 1 5 R – X Lettura ed esecuzione
4 2 0 6 R W – Lettura e scrittura
4 2 1 7 R W X Lettura, Scrittura ed esecuzione
0 0 0 0 – – – Nessun permesso oppure satiricamente parlando permesso Cetto La Qualunque

Dopo questa piccola parentesi teorica passiamo alla parte pratica da terminalecon qualche esempio:

In questo esempio stiamo attribuendo il permesso 7 all’utente, il permesso 5 ai gruppi ed infine il permesso 0 agli altri:

‘chmod’ 750 ip_eng.txt

[email protected]:~/Documents$ ls
ip_eng.txt ‘July 2018’ wget ‘working documents ale’
[email protected]:~/Documents$ chmod 750 ip_eng.txt
[email protected]:~/Documents$

In questo esempio revochiamo a tutti gli utenti tutti i permessi:

‘chmod’ 000 ip_eng.txt
[email protected]:~/Documents$ ls
ip_eng.txt ‘July 2018’ wget ‘working documents ale’
[email protected]:~/Documents$ chmod 000 ip_eng.txt
[email protected]:~/Documents$ ls
ip_eng.txt ‘July 2018’ wget ‘working documents ale’
[email protected]:~/Documents$

Da buoni affamati di cultura Linuxiana vi condiviadiamo un paio di risorse dove trovare piu dettagli:
https://it.wikipedia.org/wiki/Permessi_(Unix)
https://it.wikipedia.org/wiki/Chmod

Tips Of The Week – License Open Source

Le license open source sono licenze software che rispettano determinati standard per quanto riguarda la possibilità di consultazione, modifica e condivisione del software da loro coperto.

Le principali famiglie di license open source sono:
BSD
Apache 2.0
GPL (GNU Public License)
MIT

La differenza tra le varie licenze elencate sta nella gestione del copyright e del modo in cui terze parti possono gestire il software messo comunque a disposizione.

Sono tutte licenze che richiedono l’intervento della OSI (open source initiative https://opensource.org/approval ) per la loro convalida.
Licenza open source non vuole assolutamente dire licenza non a uso commerciale, tant’è che ci sono aziende di grosso calibro che basano il loro business plan su progetti open source, basti pensare a RedHat, Canonical o Google.

Da questi tipi di licenze sono nate licenze “satellite” per la diffusione non solo di software ma anche di documenti o materiale informatico, ad esempio, Wikipediausa una licenza di tipo GFDL (Gnu Free Documentation License) studiata appunto per la condivisione del suo materiale didattico e informativo.

Per approfondimenti rimandiamo alla pagina di Wikipedia: https://it.wikipedia.org/wiki/Licenza_open_source
e alla pagina della OSI:
https://opensource.org/licenses

Tips Of The Week – Comando at

at è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX, che permette di far eseguire uno o più comandi in un dato momento nel futuro, senza che sia richiesta la presenza dell’utente.

Il comando batch è una variante del comando at che usa impostazioni predefinite diverse tali da eseguire quanto prima i comandi usando una priorità inferiore a quella normalmente usata da at. Di fatto equivale al comando at -m -q b now, che esegue i comandi non appena il sistema non ha altre operazioni urgenti da eseguire e che notifica via email anche il completamento dell’esecuzione.

Pro Tip: Un simpatico scherzo…

$ at 2:30 nov 1
at> mpg123 urlo.mp3
at> ^D
job 11 at Sun Nov 1 02:30:00 2009

Tips Of The Week – Comando Wget

Ci sono diversi modi per scaricare files, la maggior parte basate su interfacce web e grafiche (GUI).

In questo tip vi presentiamo il comando wget, lo stesso supporta protocolli HTTPHTTPSFTP ed SFTP.

Ecco alcune opzioni utili:

• -c continua il download.
• -b continua il download nonostante la chiusura del Terminale.
• -p scarica tutti i file necessari per una corretta visualizzazzione di una pagina HTML, incluse le immagini.
• -P indicami il folder nel quale vogliamo scaricare i file, di default prende il folder corrente.
• -o log.txt crea un file logs con l’uscita di wget.
• -e robots=off non scarica il file robots.txt.
• –random-wait scagliona i download a tempi casuali, per evitare le black list.
• –limit-rate=20k limita la velocità di download a 20 kbps.

Alcuni esempi:

wget https://goo.gl/6cdwYo

Questo è un esempio di terminale dopo l’esecuzione del comando:

` [email protected]:~$ wget https://www.lucianopignataro.it/a/granita-al-limone-ricetta-amalfi-srrento/110577/

–2018-06-12 18:58:45– https://www.lucianopignataro.it/a/granita-al-limone-ricetta-amalfi-srrento/110577/
Resolving www.lucianopignataro.it (www.lucianopignataro.it)… 104.27.157.250, 104.27.156.250, 2400:cb00:2048:1::681b:9dfa, …
Connecting to www.lucianopignataro.it(www.lucianopignataro.it)|104.27.157.250|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: unspecified [text/html]
Saving to: index.html

index.html [ <=> ] 90,74K –.-KB/s in 0,04s

2018-06-12 18:58:46 (2,14 MB/s) – index.html saved [92913] `

Possiamo scaricare più file contemporaneamente elencandoli in un file di testo

Esempio: qualche_ricetta.txt:
__https://goo.gl/bEHwg4__
__https://goo.gl/NmsJ3h__
__https://goo.gl/ydCXAL__

wget -i qualche_ricetta.txt

Tips Of The Week – Qualche shortcut utile!

Oggi consigliamo qualche shortcut per la shell!

Ricordiamo che si può sempre usare l’autocompletamento per i comandi base iniziando a scrivere le prime lettere per poi premere tab.

Il primo della lista è sudo su, una volta avuti i permessi di super user per questa sessione avremmo un vantaggio sui prossimi comandi per le autorizzazioni.

watch permette di ripetere un comando in maniera del tutto automatizzata, il suo uso è:

watch [options] command -> (per i dettagli rimandiamo al man).

sudo !! detto anche sudo bang bang è un utile comando che permette di ridare il precedente comando con i diritti di amministratore senza dover ridigitare il comando.

comando | grep condizione. Chi non ha mai avuto bisogno di fare ricerche negli output dei risultati? Bene grep è uno strumento famoso che può sempre tornare utile per le analisi di testo.

Altri consigli utili sono:
Ctrl + e per spostarsi alla fine della riga di comando che si sta dando.
Ctrl + a per spostarsi all’ inizio della riga di comando che si sta dando.
Ctrl + w per cancellare l’ultima parola immessa.

Tips Of The Week – Gestione manuale dei pacchetti

Sebbene il metodo preferito per installare programmi è con i gestori di pacchetti, si può anche scaricare ed installare un pacchetto attraverso il codice sorgente. Ci sono molti differenti tipi di file di pacchetti Linux. La maggior parte di questi sono associati con i gestori di pacchetti di specifiche distribuzioni Linux, come sempre, faremo riferimento alle distribuzioni APT based.

Prima di tutto è consigliabile installare delle utility che aiutano a compilare i pacchetti software direttamente dal codice sorgente:

apt-get install build-essential
apt-get install automake
apt-get install checkinstall

Generalmente i sorgenti sono contenuti in tarball degli archivi con estensione .tar.gz o .tar.bz2, questi vanno estratti e compilati seguendo le istruzioni che generalmente si trovano all’interno di un file Readme contenuto nella tarball o fornito in bundle.

Generalmente bisogna semplicemente dare il comando:
$ make
che compila il programma e ne restituisce il compilato nella cartella src presente all’interno della tarball estratta.

Se il programma è stato pensato specificatamente per distribuzioni Debian e derivate possiamo dare il comando:

$ checkinstall

che crea un file .deb direttamente dal compilato del software.
Il pacchetto .deb può essere installato tramite gestore dei pacchetti con:

$ dpkg -i mypackage.deb

Se invece non ci troviamo in una distribuzione APT based, è buona regola spostare il compilato nella cartella /opt della propria distribuzione e creare tutti i collegamenti necessari per richiamare agilmente il programma installato manualmente, per esempio creando un alias o un collegamento nella cartella /bin.

Tips Of The Week – Criptare un file con GPG

Uno dei software più utilizzati in ambito crittografico è GPG (GNU Privacy Guard).
GPG cifra i messaggi utilizzando una coppia di chiavi generate dall’utente (una pubblica e una privata).

Su praticamente ogni distribuzione Linux è possibile utilizzare GPG da terminale tramite il comando gpg.

Il programma può essere prestato a molti utilizzi, oggi vedremo quello più semplice: come criptare in modo simmetrico un file in locale.
Per lanciare la criptazione digitare:

gpg -c myFile

Dove -c sta per symmetric

digitare una chiave a scelta

Una volta terminato verrà generato il documento myFile.gpg.
Per decriptare il file basterà digitare:

gpg myFile.gpg

digitare la chiave

Quello mostrato non è sicuramente il metodo più sicuro, come potrebbe essere la modalità asimmetrica, ma può risultare utile e veloce per criptare file in locale senza troppi pensieri!

Tips Of The Week – Comdando Nohup

Il comando nohup che significa (no hangup o non arrestare) ha la funzione di mantenere l’esecuzione di un comando (precedentemente passato come argomento) anche dopo l’uscita dal terminale.

In poche parole ignora il segnale HUP (segnale che viene inviato ad un proceso quando viene chiuso il terminale che controlla lo stesso), permettendo al processo di continuare lo stesso anche dopo la chiusura del terminale.

Il modo migliore per capirlo è vedere la sua sintassi ed esecuzioni con esempi:

Sintassi:

nohup command [comando-argomento ...]

nohup --help | --version

Dove:
--help Mostra un messaggio di aiuto ed esce.
--version Mostra info sulla versione ed esce.

Un semplice esempio è l’esecuzione di uno script, grazie al comando ‘nohup’ avremmo garantita la continuità di esecuzione anche se dovesse verificarsi un problema con la sessione, shell etc.

$ nohup ./myscript.sh &

Di default, l’uscita del comando ‘nohup’ che normalmente vedremmo visualizzata nel terminale, verrà scritto nel file nohup.out visibile nel percorso in cui ci troviamo al momento di esecuzione del comando.

Per maggiori info:
https://it.wikipedia.org/wiki/Nohup

Tips Of The Week – Comando Fuck

Ti è mai capitato, usando la CLI, di sbagliare a scrivere un comando?

C’è un rimedio, e si chiama fuck.

No, non è uno scherzo. Il comando fuck permette di correggere l’ultimo comando eseguito dalla console.

I requisiti necessari sono Python3 e pip precedentemente installato.
Per installarlo su sistemi Ubuntu-based, basta digitare:
sudo pip3 install thefuck

Per vederlo all’opera, basterà digitare un qualsiasi comando con sintassi errata, come per esempio:
vhim
e dopo la visualizzazione del messaggio di errore, scrivere:
fuck
che ti restituirà il comando corretto.

Per maggiori info:
https://github.com/nvbn/thefuck

Tips Of The Week – AppArmor

AppArmor o Application Armor è un sistema integrato in molte distribuzioni basate su Debian che permette di garantire dei profili di sicurezza e di libertà applicazione per applicazione, sfruttando le proprietà del LSM (Linux Security Modules) del kernel Linux.

Le configurazioni che verranno create per queste applicazioni verranno poi salvate in /etc/apparmor.d/ . Il modulo di sicurezza è entrato stabilmente nei sistemi Ubuntu dalla versione 8.04, digitando il seguente comando è possibile vedere se è in funzione:

sudo apparmor_status

AppArmor segue gli standard POSIX 1003.1 ed è il parallelo del ben più famoso SELinux disponibile per distribuzioni basate su RedHat.

Limitazioni: funziona solo su processi che vengono avviati dopo il caricamento del modulo kernel.

È grazie a meccanismi di questo genere e ad altri come i cgroups e LXC che è partita la rivoluzione di Docker.

Per altre informazioni rimandiamo a Wikipedia (https://en.wikipedia.org/wiki/AppArmor) e alla wiki di Ubuntu (https://wiki.ubuntu.com/AppArmor).