Como faço para listar os arquivos públicos no meu diretório pessoal? (modo 777)

7

Eu quero obter a lista de todos os arquivos na minha pasta pessoal, com rwx (leitura-gravação-execução) ou 777 permissões para todos .

Além disso, qual é o comando para saber as permissões de um arquivo?

    
por Eight 16.06.2012 / 10:03

3 respostas

12

Do terminal:

  • O terminal é aberto em seu diretório pessoal por padrão. De qualquer outro lugar, digite cd ~ para retornar ao diretório inicial.

  • ls -l mostrará as permissões do arquivo no início, por exemplo,

    -rwxr-xr-x 1 izx izx 11217428 Oct 2 2011 wkhtmltoimage-amd64

Primeiro método: O caminho para assistir e aprender

  • Você pode então filtrar com o grep para obter o resultado desejado:

    ls -l | grep -P ".{7}rwx.*"
    • a expressão regular aqui diz ao grep para selecionar apenas as linhas nas quais os caracteres 8 a 10 são rwx
  • que no meu diretório inicial mostra:

    -rwxrwxrwx 1 izx izx         0 Jun 15 23:42 sd.png
    -rwxrwxrwx 1 izx izx         0 Jun 15 23:42 slashdot.png
    drwxrwxrwx 3 izx izx      4096 Jun 15 21:31 src
    

Segundo método: a maneira correta e recursiva

  • No seu diretório home, digite find . -perm -a+rwx

    • Você está instruindo encontrar a examinar o diretório atual (home) e todos os subdiretórios, para arquivos que são rwx por todos; os resultados serão exibidos com caminhos relativos completos, por exemplo,
    ./.mozilla/firefox/lr5z24b3.default/lock
    ./src
    ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so
    ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.la
    ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so.0
    ./src/accountsservice-0.6.15/debian/libaccountsservice-dev/usr/lib/libaccountsservice.so
    ./src/accountsservice-0.6.15/debian/libaccountsservice0/usr/lib/libaccountsservice.so.0
    ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so
    ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so.0
    ./.pulse/676238f89edd1f57138b3da400000004-runtime
    ./sd.png
    ./slashdot.png
    ./XnView/lib/libQtGui.so.4
    ./XnView/lib/libQtWebKit.so.4
    ./XnView/lib/libQtXml.so.4
    ./XnView/lib/libQtDBus.so.4
    ./XnView/lib/libQtNetwork.so.4
    ./XnView/lib/libQtCore.so.4
    ./XnView/lib/libQtSvg.so.4
    
  • As entradas em negrito no diretório inicial também aparecem no primeiro método.

Para mais formas de usar find para realizar o que você quer, por favor, consulte resposta de Eliah Kagan logo acima ou abaixo dessa.

    
por ish 16.06.2012 / 10:21
4

Normalmente, você usa o comando ls para descobrir as permissões dos arquivos. Mas para uma tarefa específica, onde você deseja listar arquivos automaticamente com determinadas permissões, usar ls , mesmo se filtrar a saída com outro utilitário como grep , se tornará rapidamente muito complexo para ser executado corretamente. Então, para essas tarefas, é melhor usar find .

Se você quiser listar todos os arquivos que estão ...

  1. contido em qualquer lugar dentro de seu diretório pessoal (incluindo subdiretórios do seu diretório pessoal, subdiretórios desses subdiretórios e assim por diante), e

  2. que também são explicitamente legíveis, graváveis e executáveis por todos

... então este comando fará isso por você:

find ~ -perm 777

É realmente simples assim.

Se você quiser apenas listar arquivos que atendam às duas condições acima e residir diretamente no diretório inicial (não dentro de qualquer subdiretório), use este comando:

find ~ -maxdepth 1 -perm 777
  • Nesse caso, 777 indicará arquivos legíveis, graváveis e executáveis para você, seu grupo e todos os demais. Se alguns dos arquivos podem ter conjuntos de permissões estranhos, como o 477 (você pode ler o arquivo e todos os outros podem executar e gravar o arquivo), você provavelmente desejará usar:

    find ~ -maxdepth 1 -perm -o+rwx
    

    O hífen principal antes de -o+rwx significa que o arquivo pode ter outras permissões e o+rwx significa que outros (fora do grupo e usuário que possui esse arquivo) pode ler, gravar e executar este arquivo, sem verificar quaisquer outras permissões.

Consulte man find para obter detalhes sobre como executar esses e outros semelhantes operações, e man chmod para o significado de 777 e outros valores numéricos modos.

    
por Eliah Kagan 16.06.2012 / 11:42
1
  • Abra o terminal.
  • Mude para esse diretório onde você quer saber as permissões do arquivo pelo comando:

    cd "Directory"
    
  • Substitua o texto entre aspas pelo nome do diretório que você precisa.

  • Em seguida, digite outro comando:

    ls -l
    

    Este comando ( ls ) é normalmente usado para obter os nomes dos arquivos. O argumento -l para isso fornecerá informações completas sobre os arquivos.

    Você também poderá ver as permissões do arquivo.

por Pranit Bauva 16.06.2012 / 10:24