Linux: Modificare permessi ricorsivamente su file e cartelle

Sotto Linux, spesso abbiamo necessità di aggiustare i permessi di alcune cartelle in modo che un utente possa scrivere o semplicemente entrare nelle cartelle. Ricordo che in Linux, ci sono tre check di permessi: utente, gruppo, altri (“ugo” ossia user-group-others) e che il check di esecuzione “x” per le cartelle serve a consentire di entrarci dentro, quindi è necessario anche per la sola lettura.

I check vengono convertiti in numeri ottenendo tre codici da 0 a 7, la cosa è facile da capire se imposti i permessi con un programma interattivo come FileZilla.

In quest’ottica:

  • il codice 644 significa lettura+scrittura per proprietario e sola lettura per gruppo e altri.
  • il codice 755 significa lettura+scrittura+esecuzione per propietario e lettura+esecuzione per gruppo e altri: va bene per le cartelle.
  • 000 significa nessun permesso
  • 777 significa tutti i permessi per tutti, da evitare per motivi di sicurezza.

Se stai leggendo questo articolo, hai bisogno di operare su più file a partire da una finestra shell linux, dunque andiamo al sodo….

Ecco un comando che imposta i permessi correttamente (644 e 755) per tutti i file e cartelle, ricorsivamente, a partire dalla cartella in cui ci si trova (.) Per gli hosting linux che uso, per me ha funzionato perfettamente:

find . -type f -exec sh -c 'chmod 644 {}' \;
find . -type d -exec sh -c 'chmod 755 {}' \;

 

Se non funziona, alcuni siti riportano anche questa variante:

chmod 644 $(find . -type f)
chmod 755 $(find . -type d)

Ed ecco altri comandi che vanno a settare ricorsivamente utenti e gruppo, a partire dalla sottocartella dir/ in giù:

chown -R utente dir/
chgrp -R gruppo dir/

Ovviamente nel set di comandi precedente devi sostituire a utente e a gruppo l’utente e il gruppo che ti specifico che deve risultare proprietario dei file e delle cartelle.

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *