O seguinte script bash imprime todas as permissões da entrada de diretório passada como argumento e todos os seus pais até / :
#!/usr/bin/env bash
[[ $# -eq 1 ]] || exit 1
FILEPATH="$1"
while true ; do
ls -ld "$FILEPATH"
[[ "$FILEPATH" != "/" ]] || exit
FILEPATH="$( dirname "$FILEPATH" )"
done
Salvar como por exemplo parent_permissions.sh e executado usando /path/to/parent_permissions.sh /path/to/file .
Funciona somente com caminhos absolutos, a menos que combinado com readlink -f ou o script abspath desta resposta , em Nesse caso, você precisa alterar a atribuição inicial de FILEPATH para:
FILEPATH="$( abspath "$1" )"
No Linux, isso pode funcionar (não testado):
FILEPATH="$( readlink -f "$1" )"
Exemplo de saída:
drwxr-xr-x 66 danielbeck staff 2244 2 Feb 12:38 /Users/danielbeck
drwxr-xr-x 11 root admin 374 1 Feb 15:21 /Users
drwxrwxr-t 35 root admin 1258 22 Jan 23:09 /
Adicione argumentos à chamada ls ou substitua-a. com getfacl , conforme apropriado em seu sistema, para imprimir ACLs e atributos estendidos se você estiver interessado neles.