Linux Per Principianti: I Permessi



Nei precedenti articoli abbiamo fatto una breve introduzione al mondo Unix e nell'articolo successivo abbiamo parlato di comandi base per la gestione del file system. Oggi andremo a parlare di permessi. Come esempio prenderemo sempre il mondo Ubuntu, coscienti del fatto che negli altri sistemi operativi il meccanismo è simile.

Essendo Linux un sistema operativo multiutente risulta particolarmente utile conoscere il meccanismo dei permessi.

Se proviamo a digitare il comando  ls -al  otterremo in output la lista dei file della cartella corrente, inclusi quelli nascosti. L'output sarà una cosa simile.

Output

Nell'immagine sono stati evidenziate sia la colonna dei permessi che il proprietario e il gruppo di appartenenza.

Colonna dei permessi

Il primo carattere indica la tipologia dell'elemento e può avere tre valori, che sono:

  • d, che significa che l'elemento è una directory (cartella);
  • l, che sta per link simbolico;
  • - che indica un file;

I 9 caratteri successivi indicano i permessi veri e propri. Nel dettaglio, sono divisi in 3 gruppi che sono il proprietario, il gruppo ed il terzo riguarda gli altri utenti.

Abbiamo tre possibili caratteri che rappresentano i permessi possibili e sono:

  • r che indica il permesso di lettura read;
  • w che indica il permesso di scrittura write;
  • che rappresenta il permesso di esecuzione;

Le colonne proprietario gruppo indicano rispettivamente il proprietario del file ed il gruppo di appartenenza.

Fatta questa premessa, veniamo al sodo.

Ubuntu ci mette a disposizione diversi comandi per la gestione dei permessi. Vediamo meglio.

chmod

chmod  è il comando che permette di modificare i permessi ed ha una duplice sintassi.

Sintassi simbolica

Consente di assegnare permessi diversi a proprietario, gruppo ed altri utenti. La sintassi è la seguente.

chmod a=rwx file

Il carattere a sinistra dell'uguale può avere diversi valori. Vediamo quali.

  • tutti;
  • utente proprietario;
  • gruppo;
  • o altri utenti;

Questo comando indica il fatto che stiamo assegando i permessi a destra dell'uguale a chi indicato dal carattere alla sinistra dell'uguale.

Sintassi ottale

Con questa sintassi vengono assegnati i tre livelli di permesso simultaneamente. Si utilizzano 3 numeri per indicare i permessi. Vediamo come.

chmod 777 file

In questo esempio abbiamo dato i massimi permessi a tutti ("rwx" a tutti).

Vediamo il significato dei numeri:

  • significa rwx;
  • significa rw;
  • significa rx;
  • significa r;
  • significa wx;
  • significa w;
  • significa x;
  • significa nessun permesso;

Nella sintassi del comando abbiamo tre cifre che indicano rispettivamente l'utente corrente, il gruppo e gli altri utenti.

Una piccola nota. Spesso può capitare che Ubuntu faccia i capricci di fronte a un  chmod . In questo caso la cosa da fare per risolvere il problema è semplicemente modificare il comando come segue.

sudo chmod 777 file

Questo significa che stiamo eseguendo il comando come superuser, che per gli utenti WIndows equivale all'esegui come amministratore. Ci verrà quindi chiesta la password di sistema. Non ci spaventiamo se non vediamo alcun carattere comparire sul terminale, è tutto normale!wink

chown e chgrp

Ora che abbiamo capito come gestire i permessi, apriamo il lungo capitolo della gestione di gruppi e utenti.

chown

Il comando  chown  è utilizzato per cambiare l'utente proprietario e/o il gruppo di un file o una cartella. La sintassi è la seguente.

chown proprietario:gruppo file

Ne esiste anche una versione per il solo proprietario, che è la seguente.

chown proprietario file

Se ad esempio immaginiamo di voler assegnare il file Main.java all'utente developer ed al gruppo devs il comando sarà:

chown developer:devs Main.java

Ovviamente, come detto nella trattazione sui comandi per la gestione del file system, al posto del nome del file si può mettere anche il path.

chgrp

chgrp  è molto simile a  chmod . Ci permette di modificare solo il gruppo di un file o di una cartella. Non ci da alcuna possibiità di agire sul proprietario. La sintassi è la seguente.

chgrp gruppo file

chmod, chown e chgrp in modalità ricorsiva

Tutti e tre i comandi supportano la modalità ricorsiva. Può capitare ad esempio di voler modificare proprietario e/o gruppo di una cartella e di tutto il suo contenuto. Scriveremo allora:

chmod -R 777 cartella

chown -R proprietario:gruppo cartella

chgrp gruppo cartella

In questo modo modificheremo le informazioni relative alla cartella e, ricorsivamente, a tutto il suo contenuto.

Alcuni esempi

Andiamo a vedere alcuni esempi utili.

  • chmod 755 file  imposta i permessi completi al proprietario, lettura ed esecuzione per gruppo ed altri utenti;
  • chmod u=rwx file  da i permessi completi all'utente, lasciando inalterati i permessi degli altri;
  • chmod ugo=rwx file  imposta permessi completi a tutti;
  • chmod ugo-x file  questa è una valida alternativa quando vogliamo rimuovere dei permessi. In questo caso stiamo rimuovendo il permesso di esecuzione a tutti.
  • chmod ugo+x file  al contrario dell'esempio precedente, qui stiamo aggiungendo il permesso di esecuzione a tutti;
  • chown -R nome:gruppo mia_cartella  rende la directory chiamata mia_cartella con tutto il suo contenuto di proprietà di nome gruppo;
  • sudo chown -R root:root mia_cartella  rende la directory mia_cartella di proprietà di root e del gruppo root;

Consigli e conclusioni

Il consiglio più importante che mi sento di dare è che, quando ci viene qualsiasi dubbio, dobbiamo consultare la pagina di manuale. In questo caso, se ci venisse qualche dubbio relativamente al funzionamento di chmod ad esempio, scriveremmo  man chmod . Questa è una cosa che vale per qualsiasi volta in cui sorga qualche dubbio.

Nonstante ciò, la gestione dei permessi è un argomento un po' delicato. Conviene, per acquisire praticità seguire due approcci: il primo consiste nel farci una cartella di prova e "smanettare" solo all'interno di questa cartella. L'alternativa è quella di utilizzare una macchina virtuale per le nostre prove. Personalmente, a meno di esigenze particolari, consiglio di utilizzare una directory in locale.

Quindi, sperimentate gente!wink

 
by Alessio Mungelli Date: 14-03-2020 ubuntu linux terminale linea comando spiegazione principianti permessi gestione visite : 559  
 
Alessio Mungelli

Alessio Mungelli

Computer Science student at UniTo (University of Turin), Network specializtion, blogger and writer. I am a kind of expert in Java desktop developement with interests in AI and web developement. Unix lover (but not Windows hater). I am interested in Linux scripting. I am very inquisitive and I love learning new stuffs.

 
 
 

Articoli correlati

    Linux per Principianti: Guida all'installazione di Ubuntu

    Abbiamo dato precedentemente una panoramica su qualche aspetto di base dei sistemi Unix e in particolar modo Ubuntu. Abbiamo infatti fatto un'introduzione, dopodichè abbiamo parlato di terminale Ubuntu e infine abbiamo parlato…

    Linux Per Principianti: Terminale Ubuntu

    Ho introdotto nell'articolo precedente, consultabile qui, i concetti base relativi al mondo del pinguino. Oggi andiamo a vedere alcune operazioni di base che si possono svolgere mediante linea di comando su…

    Come installare Android Studio su GNU/Linux

    Android studio è un tool ideato per sviluppare app per il sistema operativo mobile di Google, vediamo come installarlo passo passo. Innanzi tutto, bisogna installare il runtime java ossia il pacchetto "openjdk". Terminata l'istallazione del…

    Firefox 22 disponibile: novità e download

    Mozilla ha reso disponibile nei propri server la nuova versione stabile di Firefox 22, aggiornamento che aggiunge diverse novità al famoso browser open source compreso il supporto completo per WebRTC,…

    Rilasciato Elementary Tweak: il programma per personalizzare elementaryOS

    È stato rilasciato da poche ore Elementary Tweaks, un programma che puó essere considerato la controparte dei più conosciuti Ubuntu Tweak o Gnome Tweak Tool per elementaryOS. Vediamo di cosa si…

    Rilasciato Linux 3.9.3

    Terzo rilascio di mantenimento per la serie 3.9.x, é Linux 3.9.3. Quali sono le novità? Vediamo:      iscsi-target: Fix processing of OOO commands     cpufreq / intel_pstate: fix ffmpeg regression    …

    LibreOffice 4.0.3 rilasciato con 100 bugfix

    È stata finalmente rilasciata la terza release di mantenimento di LibreOffice della serie 4.0.X: LibreOffice 4.0.3. Quali sono le novità? Tra le  ottimizzazioni e correzioni della nuova versione, possiamo trovare una migliorata…