Home arrow Core Joomla arrow Server setting arrow Gestione dei permessi sui file
Gestione dei permessi sui file

La presente FAQ vuole illustrare il funzionamento dei permessi sui file, limitatamente ad un server Linux.
Linux è un sistema operativo multiutente e come tale ciascun utente possiede il proprio account, dotato di username e password. Ogni utente, inoltre, fa parte di un gruppo del quale può ereditare alcuni permessi.

I permessi su file e cartelle sono differenziati in 3 blocchi distinti: owner, group, other. Vale a dire che vengono gestiti separatamente i permessi relativi al creatore del file (owner), al gruppo (group) di appartenenza del creatore ed a tutti gli altri utenti estranei (other).
Per ciascun blocco esistono 3 tipi diversi di permessi: lettura (Read), scrittura (Write), esecuzione (eXecute); ciascuno di essi può essere abilitato oppure no.
Pertanto è possibile dare il permesso di lettura al gruppo ma non agli altri. O quello di scrittura al creatore ma non al gruppo.

In genere, per l’assegnamento dei permessi, si utilizza un codice numerico a base ottale. Se avete mai sentito frasi del tipo il file deve avere permessi 777, stiamo parlando proprio di questo codice.
Il meccanismo è molto semplice: ad ogni permesso viene associato un valore numerico. In particolare:

RWX
421

Ovviamente poichè i blocchi sono 3, ciascun file si trova ad avere 9 permessi in totale:

OwnerGroupOther
RWXRWXRWX
421421421

Pertanto il codice numerico che rappresenta i permessi su un file è dato dalla somma dei permessi attivati in ogni singolo blocco.
Ad esempio, supponiamo che il creatore abbia tutti i permessi (ossia RWX), il gruppo abbia solo lettura e scrittura (RW) e gli altri solo lettura (R). Pertanto il codice numerico sarebbe 764: 7 = 4 + 2 + 1, 6 = 4 + 2 + 0, 4 = 4 + 0 + 0.
Quindi un file con permessi:

  • 777 equivale a RWX RWX RWX
  • 755 equivale a RWX R-X R-X
  • 644 equivale a RW- R-- R--
  • e così via...

Infine occorre ricordare una cosa molto importante relativamente a Joomla! ed ai permessi.
Quando ci si connette via FTP per gestire il sito, lo si fa con un nome utente fornito dal provider; pertanto l’owner dei file è (solitamente) il nostro utente FTP.
Tuttavia, durante il normale funzionamento di Joomla!, non è più l'utente FTP a lavorare ma è l’utente del web server, che di solito si chiama www-data o apache. Di conseguenza se togliamo, ad esempio, i permessi di lettura al gruppo e agli altri, la pagina non sarà più accessibile online perchè il web server (che è other) non ha più i permessi di lettura sul file. O analogamente se togliamo i permessi di scrittura.
Inoltre se il web server si trova a dover creare dei file, ne sarà lui il creatore ed il nostro utente sarà pertanto other. Ciò significa che se il web server crea il file con permessi 644, non saremo più in grado di rimuovere tali file via FTP.