Listar permissões de todos os diretórios pais de um único arquivo [duplicado]

0

Digamos que eu tenha um arquivo localizado em /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java .

Eu quero listar todos os diretórios principais para ver as permissões deles, a fim de obter algo como abaixo, para que eu possa rastrear os problemas de permissão.

drwxr-xr-x  7 root     root  4096 Dec 16 17:50 java
dr-xr-xr-x  2 root     root  4096 Dec 16 17:50 bin
dr-xr-xr-x  3 root     root  4096 Dec 16 17:50 jre
drwxr-xr-x 14 root     root  2920 Dec 16 17:50 java-1.6.0-openjdk-1.6.0.0.x86_64
...

Isso é possível?

    
por xiankai 19.12.2013 / 04:19

1 resposta

3

Uma ideia:

FILE=/usr/bin/ppmpat

until [ "$FILE" = "/" ]; do
        ls -lda $FILE
        FILE='dirname $FILE'
done

Claro, altere FILE com o arquivo que você deseja. A ordem será o oposto do seu pedido, de fato (indo do arquivo para o topo), mas eventualmente você pode executar o comando através de "tac", se necessário;)

Minha saída:

-rwxr-xr-x 1 root root 22672 Oct 17  2011 /usr/bin/ppmpat
drwxr-xr-x 2 root root 114688 Dec 19 07:04 /usr/bin
drwxr-xr-x 13 root root 4096 Feb 11  2013 /usr

Ou canalizado em "tac":

drwxr-xr-x 13 root root 4096 Feb 11  2013 /usr
drwxr-xr-x 2 root root 114688 Dec 19 07:04 /usr/bin
-rwxr-xr-x 1 root root 22672 Oct 17  2011 /usr/bin/ppmpat
    
por 19.12.2013 / 07:24