
locorj
(usa openSUSE)
Enviado em 24/11/2014 - 11:30h
O comando postado foi bem útil, a única questão que ele não resolveu foi a permissão os arquivos na raiz que não deveria ser alterada. Porém revolvi no script.
segue abaixo abaixo pra quem interessar.
#!/bin/bash
# Script criado por Allan
echo "Informe o diretorio raiz: " ; read path_raiz
echo "Permissao dos diretórios: " ; read permissao_diretorio
echo "Permissao dos arquivos do diretório: " ; read permissao_arquivos
function gothrudir
{
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for f in $1/*
do
if [ -d $f ] && [ $f != $1 ] ; then
#echo "$f"
# mudar arquivos
find "$f"/* -type f | sed 's/ /\\ /g' | xargs chmod $permissao_arquivos
#mudar diretorio e subdiretorios
chmod $permissao_diretorio "$f"
find "$f"/* -type d | sed 's/ /\\ /g' | xargs chmod $permissao_diretorio
#ls -la "$f"
fi
done
}
function is_integer() {
printf "%d" $1 > /dev/null 2>&1
return $?
}
if [ -z $path_raiz ] || [ -z $permissao_diretorio ] || [ -z $permissao_arquivos ] ; then
echo "Todos os campos sao obrigatorios"
else
LEN=$(echo ${#permissao_arquivos})
if is_integer $permissao_arquivos ; then
if [ $LEN == 3 ] && [ ! $permissao_arquivos -gt 777 ]; then
LEN=$(echo ${#permissao_arquivos})
if is_integer $permissao_arquivos ; then
LEN=$(echo ${#permissao_diretorio})
if [ $LEN == 3 ] && [ ! $permissao_diretorio -gt 777 ]; then
echo "Processando os arquivos e diretórios... aguarde"
ignorar_arquivos_raiz="T"
gothrudir $path_raiz $ignorar_arquivos_raiz
echo "Atualizado com sucesso."
else
echo "A permissao de diretório deve ser conter XXX caracteres e ser menor ou igual 777"
fi
else
echo "Permissao diretórios é invalida."
fi
else
echo "A permissao de arquivos deve ser conter XXX caracteres e ser menor ou igual 777"
fi
else
echo "Permissao arquivos é invalida."
fi
fi