Quando “sudo” d’estate ma anche d’inverno…

di | 03/06/2017

L’OM digitale, nelle sue sperimentazioni (e tanti articoli sul nostro sito lo dimostrano) deve spesso avere a che fare con istruzioni “a linea di comando” da dare a quell’ultra-nano-microcomputer tascabile (si sa qual’è) ormai presente in quasi tutte le realizzazioni hand-made. Operazioni semplici – ad esempio copiare o spostare un file, eseguire comandi come Superuser, inserire in una memoria microSD il file “immagine” di un sistema operativo dedicato – richiedono la scrittura di semplici nomi al “prompt” – il carattere all’inizio della riga che può essere un “$” o un “#” – ma che sono sconosciuti a tanti che smanettano sul Raspberry Pi o su qualsiasi altro sistema basato su Linux.

Della serie, ho fatto ciò che ho letto nel sito, il dispositivo funziona ma vorrei anche sapere che cos’è che ho fatto e perché…

Una premessa. Linux prevede dei “livelli di sicurezza” per evitare che un utente possa accedere e magari causare danni a parti del sistema operativo, a tale scopo solo alle proprie aree di lavoro vengono dati i “privilegi” di lettura e scrittura di file o cartelle.

In particolari casi però è necessario operare come SuperUser; specie per noi quando dobbiamo modificare qualche configurazione nel Raspberry o installare nuovi programmi. Ed ecco allora questo utile (e pericoloso) comando, che permette il “salto di sponda” in caso di necessità.

sudo (ovvero: fare il SuperUser), digitato prima di qualsiasi altro comando, permette di eseguirlo con i privilegi di root ovvero di amministratore del sistema: installare programmi, modificare parametri nei file di servizio del Raspberry, ricopiare o spostare file o cartelle su aree a cui all’utente normale non è ammessa la scrittura.

Se come SuperUser occorre dare più comandi di seguito, è utile digitare inizialmente sudo -s: compare il prompt “#” e da questo momento si diventa root… occhio eh!

Dare alla fine exit per ritornare alla condizione di semplice utente.

 


Comandi di uso comune

ls  →  è il classico comando “dir” ben conosciuto in altri ambienti operativi e mostra la lista dei file nella cartella. La variante ls -l li mostra nel dettaglio (anche con i flag dei “permessi” – vedi più sotto).

cp  <sorgente> <destinazione>  →  duplica un file con altro nome o copia un file su un’altra cartella

mv <sorgente> < destinazione> → muove un file su un’altra cartella o rinomina il file

Esempio: copia verso Documents (cartella di propria pertinenza) o sulla propria area Home:

 

Qui invece si tenta di ricopiare il file su una cartella su cui non si hanno i privilegi (/usr/local/bin, è una cartella di sistema):

 

Mentre qui la copia è possibile se si diventa SuperUser (ma mi raccomando, è solo un esempio!):

Per creare o editare un file

Alcuni comandi sono utili per creare o modificare file di testo (per dire, possono ricordare il Notepad di Windows ma come sempre qua, “a linea di comando”); quello che di solito si usa nei nostri smanettamenti si chiama nano:

nano <nome del file>

Si apre l’area di editing (e se il file è creato l’area è vuota) e l’uso è estremamente semplice: scrivete!

Per terminare, come si vede dal piccolo menu in basso, occorre dare <ctrl>x (il carattere “x” contemporaneamente al tasto Ctrl). Se si sono fatte delle modifiche, appare una piccola finestra per selezionare se salvare il file o no.

Altre opzioni, nei nostri casi, non sono necessarie.

 

Rendere eseguibile un file (esempio, dopo avere editato uno script)

chmod <nome del file>  →  cambia i “permessi” del file. Un esempio: li cambiamo da “file_di_prova”

Qui inizialmente il file ha i soli permessi di lettura/scrittura (per l’utente proprietario) e di sola lettura per tutti gli altri. Vengono poi dati i permessi di esecuzione e scrittura via via al proprietario, al gruppo di appartenenza e a tutti gli utenti.

Ma vediamo nel dettaglio:   

I caratteri a sinistra corrispondono rispettivamente a:

  1. Tipo di file (esempio “d” se è una cartella)
  2. Permesso di lettura al proprietario
  3. Permesso di scrittura al proprietario
  4. Permesso di esecuzione al proprietario
  5. Permesso di lettura agli utenti del gruppo
  6. Permesso di scrittura agli utenti del gruppo
  7. Permesso di esecuzione agli utenti del gruppo
  8. Permesso di lettura per tutti gli utenti
  9. Permesso di scrittura per tutti gli utenti
  10. Permesso di esecuzione per tutti gli utenti

mentre gli ultimi due campi mostrano rispettivamente il nome dell’utente proprietario e il gruppo di appartenenza.

Guardando i vari campi di validazione dei permessi, si conclude che nel nostro esempio le singole cifre nel comando chmod (qui 5 e 7) sono la rappresentazione, in codice ottale, dei singoli gruppi di 3 campi rispettivamente del proprietario, del gruppo o di tutti gli utenti.

N.B. Uno script è in pratica un insieme di comandi o di istruzioni racchiusi in un file; rendendolo eseguibile, i comandi al suo interno vengono eseguiti in sequenza.

 

Per contatti: ik5fka@gmail.com Roberto (Gruppo Radio Firenze)

[ratings]