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.