.: HosiriS :.

Informatica e non solo

Eseguire modifiche dei permessi in maniera ricorsiva

Posted by hosiris su ottobre 21, 2010

Capita spesso di dover modificare i permessi ad intere alberature di directory, ad esempio quando si copiano i file da partizioni Windows o da CD.
Il seguente script, posizionato in “/usr/bin/”, permette con un comando di modificare i permessi discriminando le cartelle dai file.


FILE_MOD="$1"
DIR_MOD="$2"
BASE_DIR="$3"
[ -z "$1" ] && FILE_MOD="640"
[ -z "$2" ] && DIR_MOD="750"
[ -z "$3" ] && BASE_DIR="./"
ls | while read file; do
  if [ -L "$file" ]; then
    echo "   ==>> '$file' è un link simbolico, lo ignoro."
      continue
  elif [ -d "$file" ]; then
    echo " Entro nella directory '$file'"
    chmod u+rwx "$file" 2> /dev/null ||\
    { echo " Non ho i permessi per entrare in '$file'"; continue; }
    cd "$file"; $0 $@; cd - > /dev/null
    chmod $DIR_MOD "$file" && echo -e " Directory '$file' impostata.\n"
  elif [ -f "$file" ]; then
    echo -n "   $file ... "
    chmod $FILE_MOD "$file" && echo " [ OK ]"
  else
    echo " Ignoro '$file'."
  fi
done

3 Risposte to “Eseguire modifiche dei permessi in maniera ricorsiva”

  1. Fabrizio said

    Ma dare -R come argomento non è sufficiente?

    • hosiris said

      Il -R non è sufficiente perchè se dai “chmod -R 755 namedir/” applicherà il 755 anche ai file contenuti all’interno… Sinceramente non vorrei avere tutti i file eseguibili😀

  2. blackout said

    vero, anche io mi sono fatto un coso del genere

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: