Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

In Ubuntu l'accesso in lettura/scrittura ai file e la loro esecuzione sono gestiti dalle regole dei permessi. In questo modo, in un sistema multi-utente, per ogni file viene definito un proprietario e quali utenti o gruppi di utenti abbiano il privilegio di poter usufruire dei file.
Solo il super utente "root" ha la possibilità di accedere a qualsiasi file nel sistema senza tenere conto dei permessi.
In questa guida sono illustrati i metodi per visualizzare e modificare i permessi dei file.

Operazioni comuni

Per modificare i permessi di file e cartelle fuori dalla cartella /home e sottocartelle è necessario possedere i permessi di amministrazione.

Assegnare i permessi di lettura/scrittura

Da interfaccia grafica

Per assegnare i permessi di lettura, scrittura o entrambi a un file tramite il proprio file manager, fare clic col tasto destro del mouse sul file interessato e quindi selezionare Proprietà → Permessi:

Da terminale

Per modificare i permessi a un file tramite terminale è necessario spostarsi nella cartella dove è collocato il file.

Assegnare i permessi di esecuzione

Da interfaccia grafica

Per assegnare i permessi di esecuzione a un file tramite il proprio file manager, fare clic col tasto destro del mouse sul file interessato e quindi selezionare Proprietà → Permessi

Da terminale

Per modificare i permessi a un file tramite terminale è necessario spostarsi nella cartella dove è collocato il file.

Operazioni avanzate sui permessi

Visualizzare i permessi

Per visualizzare i permessi dei file e delle cartelle contenute in una data cartella, digitare nel terminale il comando:

ls -l /percorso/alla/cartella

dove al posto di /percorso/alla/cartella viene inserito il percorso alla cartella desiderata. Se l'argomento non viene fornito, il comando viene applicato alla directory corrente.

Per visualizzare i permessi di un file o di una cartella specifica, filtrare l'uscita col comando grep modificando così il comando:

ls -l /percorso/alla/cartella | grep nomecercato

dove al posto di nomecercato viene inserito il nome del file o cartella desiderata.

Il risultato saranno righe simili alle seguenti:

totale 28
drwx------  2 root     root    16384 2007-02-21 11:18 lost+found
drwxr-xr-x 33 utente1  utente1  4096 2007-05-21 11:41 utente1

Il significato dei vari componenti del risultato è il seguente:

Il significato del primo carattere è riferito all'attributo del file, come esposto dalla seguente tabella:

Attributo

Descrizione

-

file regolare

d

cartella

b

dispositivo a blocchi

c

dispositivo a caratteri

l

collegamento simbolico

p

named pipe

s

socket

Il significato delle terne è riferito ai permessi relativi ai vari utenti e gruppi, come esposto dalla seguente tabella:

Terna

Output di ls

Utente

prima terna

-rwx------

owner (proprietario)

seconda terna

----rwx---

group (gruppo)

terza terna

-------rwx

other (altro)

Sono presenti tre diverse restrizioni di accesso, come esposto dalla seguente tabella:

Simbolo

Permesso

Azione

r

read

lettura

w

write

scrittura

x

execute

esecuzione

-

assenza del permesso

Permessi riferiti a file:

Permessi riferiti a cartelle:

L'applicazione del permesso di scrittura a una cartella consente la cancellazione dei file contenuti in essa anche a utenti che non possiedono i permessi di scrittura su tali file.

Cambiare i permessi ai file

Il comando da utilizzare nel terminale per la modifica dei permessi è chmod, la cui sintassi è:

chmod [OPZIONI] PERMESSI nomefile

dove al posto di nomefile viene inserito il nome del file di cui si intende modificare i permessi, al posto di PERMESSI i permessi desiderati.

È possibile modificare i permessi attraverso l'uso dei numeri e delle lettere, esposti nei seguenti paragrafi.

Non è consigliabile modificare i permessi ai file di sistema. Alcuni file hanno dei permessi molto restrittivi per scongiurare accessi non autorizzati e problemi di sicurezza. Ad esempio, il file /etc/shadow, che contiene le password utente, non ha impostato alcun permesso per gli utenti.

Utilizzare chmod con i letterali

Quello che segue è il dizionario dei letterali da usare con i permessi:

Opzioni

Definizione

u

proprietario

g

gruppo

o

altri

x

esecuzione

w

scrittura

r

lettura

+

aggiungi permesso

-

annulla permesso

=

imposta permesso

In generale, la sintassi da adoperare è la seguente:

chmod UTENTE+/-/=PERMESSI nomefile

dove al posto di UTENTE si deve inserire una qualsiasi combinazione di u, g e o, al posto di +/-/= uno dei tre simboli, al posto di PERMESSI una qualsiasi combinazione di x, w, e r e al posto di nomefile il nome del file di cui si intende manipolare i permessi.

Ad esempio:

Utilizzare chmod con i numeri

In alternativa è possibile usare, oltre al metodo letterale, un sistema numerico (è usata la rappresentazione ottale). Quella che segue è una tabella contenente il dizionario dei numeri da usare con i permessi e la definizione in lettere corrispondente:

Opzioni

Definizione

Definizione in lettere

#--

proprietario

u (user)

-#-

gruppo

g (group)

--#

altri

o (others)

0

nessun permesso

-

1

esecuzione

(x, execution)

2

scrittura

(w, write)

3

esecuzione + scrittura

(xw)

4

lettura

(r, read)

5

lettura + esecuzione

(rx, somma dei valori 1+4)

6

lettura + scrittura

(rw, somma dei valori 2+4)

7

lettura + scrittura + esecuzione

(rwx, somma dei valori 1+2+4)

Proprietario, gruppo e altri sono rappresentati da tre numeri in sequenza. Per ottenere il valore da impostare, è sufficiente determinare la tipologia d'accesso e poi sommare i numeri relativi alle tipologie di permesso.

Per esempio:

Quelli che seguono sono degli esempi di utilizzo del comando chmod con i numeri:

È necessario aggiungere l'opzione -R per cambiare i permessi a tutto il contenuto della cartella, oltre che alla cartella stessa (ossia nella modalità detta "ricorsiva").

Modificare ricorsivamente i permessi delle cartelle

Per modificare ricorsivamente i permessi delle cartelle bisogna usare il seguente comando:

find /percorso/cartella/ -type d -exec chmod UTENTE+/-/=PERMESSI {} +

Consultare questo paragrafo per informazioni sui parametri da usare al posto di «UTENTE+/-/=PERMESSI».

Ad esempio:

Modificare ricorsivamente i permessi dei file

Per modificare ricorsivamente i permessi dei soli file contenuti in una o più cartelle, bisogna usare il seguente comando:

find /percorso/cartella/ -type f -exec chmod UTENTE+/-/=PERMESSI {} +

Consultare questo paragrafo per informazioni sui parametri da usare al posto di «UTENTE+/-/=PERMESSI».

Ad esempio:

Permessi speciali

I permessi speciali set user ID, set group ID e sticky bit servono per impostare dei comportamenti peculiari a singoli file oppure a cartelle (compresi relativi contenuti) allo scopo di limitarne o integrare l'accesso e/o l'esecuzione.

Opzioni

Definizione

Definizione in lettere

s--

set user ID

s (setuid)

-s-

set group ID

s (setgid)

--t

sticky bit

t (sticky bit)

0

nessun permesso

---------

1

sticky bit

--------t

2

setgid

-----s---

3

setgid + sticky bit

-----s--t

4

setuid

--s------

5

setuid + sticky bit

--s-----t

6

setuid + setgidbit

--s--s---

7

setuid + setgid + sticky bit

--s--s--t

Cambiare i permessi delle partizioni

umask, fmask e dmask

File system come NTFS e FAT, utilizzati da Windows, hanno un sistema per gestire utenti e permessi incompatibile col sistema usato da GNU/Linux. Per maggiore informazioni sul montaggio di tali partizioni consultare la relativa guida.

In caso di partizioni appartenenti a un sistema Windows, o create con quest'ultimo si noti che, durante la fase di montaggio:

In modo predefinito vengono assegnati permessi di lettura, scrittura ed esecuzione per tutti gli utenti e sono validi sia per i file che per le cartelle. Per modificarli è possibile usare le opzioni:

I permessi per le partizioni vengono solitamente modificati attraverso l'uso del suddetto modificatore nel file /etc/fstab, il contenuto del quale sarà simile al seguente esempio:

#
# <filesystem> <mount point>       <type>     <options>                    <dump>  <pass>
proc            /proc               proc       defaults                     0       0
/dev/sda1       /                   ext3       defaults,errors=remount-ro   0       1
/dev/sda2       /media/windows10    ntfs-3g    umask=0222,ro,nls=utf8       0       0
/dev/sdb1       /media/windowsxp    vfat       umask=0002,nls=utf8          0       0
/dev/sdb2       /media/storage      ntfs-3g    dmask=000,fmask=113          0       0

Nell'esempio:

Cambiare i permessi di una partizione FAT con umask

Per assegnare a tutti gli utenti i permessi di accesso in scrittura e lettura alla partizione FAT, seguire i seguenti passaggi:

  1. Creare una copia di sicurezza del file /etc/fstab con il seguente comando:

     sudo cp /etc/fstab /etc/fstab.old
  2. Aprire il file sopra citato con un editor di testo e con i privilegi di amministrazione digitando nel terminale:

     sudo nano /etc/fstab
  3. Cercare la riga relativa al volume FAT desiderato, simile alla seguente:

     /dev/dispositivo       /punto/di/mount     vfat defaults 0 0

    una volta trovata, modificarla come segue:

     /dev/dispositivo       /punto/di/mount     vfat umask=000 0 0
  4. Per applicare le modifiche seguire uno dei seguenti metodi:
    • Riavviare il sistema.
    • Smontare e rimontare il volume digitando nel terminale:

       sudo umount /punto/di/mount
       sudo mount  /punto/di/mount

sostituendo /punto/di/mount con la cartella da cui si potrà accedere alla partizione.

Ulteriori risorse


CategoryAmministrazione

AmministrazioneSistema/PermessiFile (l'ultima modifica è del 23/07/2024 13.37.43, fatta da andreas-xavier)