.: HosiriS :.

Informatica e non solo

Archive for 21 ottobre 2010

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

Posted in Informatica, Linux, Ubuntu | 3 Comments »