bash script para verificar a propriedade do arquivo

0

Estou tentando escrever um script que aceita 3 argumentos como entrada.

  1. path: onde os arquivos que queremos verificar a propriedade são encontrados.

  2. propriedade esperada: a propriedade esperada dada como argumento 2

  3. group: argumento 3

Haverá também um arquivo whitelist, que terá alguns dos nomes dos arquivos. Se qualquer um dos nomes de arquivo da lista de permissões for encontrado, eles deverão ser ignorados.

O script precisa imprimir uma mensagem se qualquer propriedade do arquivo não corresponder de outra forma, deve imprimir "todos os arquivos têm a propriedade esperada".

Eu cansei do script, mas não está funcionando. Não sei como trabalhar com a lógica de arquivos da lista de permissões.

Alguém por favor pode me ajudar?

#!/usr/bin/env bash
PATH=$1
Owner=$2
Group=$3
WHITELIST="(/tmp/file_whitelist.txt)"

listcount=0
whitelist_matches=0

while IFS="" read -r matchedentry; do
    if [[ "$matchedentry" =~ $WHITELIST ]]; then
        ((whitelist_matches++))
    else
        echo -e "$matchedentry\r"
        ((listcount++))
    fi
done < <(find "$PATH" -perm /u+w -user $Owner -o -perm /g+w -group $GROUP)

if (( $listcount > 0 )); then
        echo "$listcount items are having by '$Owner' ($whitelist_matches whitelisted)."
else
        echo "Files which are Not having correct ownership found ($whitelist_matches whitelisted)."
fi
    
por user1988111 10.02.2014 / 19:15

1 resposta

4

Assim que você fizer isso:

PATH=$1

seu script não poderá mais localizar o programa find . Não use $UPPER_CASE_VARS

    
por 10.02.2014 / 19:53

Tags