Ver permissão / proprietário da árvore de diretórios completa

25

Lembro-me de fazer algo como "XXX / home / user / dir / child / file" e ele retornou o proprietário e / ou a permissão de:

/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file

Mas não me lembro qual foi esse comando. Alguém tem alguma ideia?

    
por please delete me 09.07.2013 / 18:56

5 respostas

26

O comando poderia ter sido:

namei -m /home/user/dir/child/file
    
por 06.02.2014 / 12:10
25

Acho que você pode estar pensando no comando tree . Por exemplo:

$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml    ]  apps/glassfish3/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/config
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...

Os switches acima fazem o seguinte:

  • -p - permissões
  • -u - username / userid
  • -f - caminho completo
  • -i - não imprima linhas de indentação
  • -d - somente diretórios de impressão

Referências

por 09.07.2013 / 20:35
3

Depois de dar um pouco de coragem, eu inventei isso

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done

A saída é semelhante a esta

-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul  9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep  4 23:53:27 2012 /home -> usr/home

Espero que esteja bem em ordem inversa.

Com base nos comentários, aqui está uma maneira de listar da raiz para baixo:

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'
    
por 09.07.2013 / 19:41
0

No diretório do qual você deseja saber as permissões e proprietários do ancester:

for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd .. ; done

Note que depois disso, você estará em / :) se você quiser voltar para onde estava, coloque o comando dentro

HERE=$(pwd)
...
cd ${HERE}
    
por 23.03.2018 / 00:15
-1

O comando que você está procurando para listar permissões e proprietários / grupos é ls -l .

A opção

-l é usada para o formato de listagem longa.

ls -l /path/to/list

Além disso, se você deseja listar e os arquivos ocultos , adicione a opção -a (all) .

ls -al /path/to/list

Além disso, se você quiser listar as permissões em seus subdiretórios , use a opção -R (recursiva) .

ls -Rl /path/to/list

A primeira coluna exibe as permissões (read (r), write (w), executar (x)) e algumas permissões especiais (diretórios (d), - (arquivo regular)) ea terceira e quarta coluna mostra a você proprietário e grupo do arquivo / diretório, respectivamente.

    
por 09.07.2013 / 19:10