Qual é o comando para encontrar as permissões de leitura / gravação para um único arquivo?

1

Eu sei que ls -l lista as permissões de cada arquivo em um diretório, mas qual é o comando se eu quiser ver as permissões de apenas um arquivo específico?

    
por hugomg 11.02.2015 / 18:18

4 respostas

3

Para obter todas as informações fornecidas por ls -l para um único arquivo ou pasta, use a opção -d e especifique o arquivo:

ls -ld filename
    
por 11.02.2015 / 18:44
4

Para obter apenas o modo:

stat -c %a file

(onde file também pode ser um diretório).

Nota: isto é com o comando stat do GNU Coreutils. Caso contrário, a solução depende do sistema.

    
por 11.02.2015 / 18:21
2

Se sua intenção é fazer algo dependendo da permissão do arquivo, então, em alguns casos, você pode considerar a declaração condicional simples test (também conhecido como [ ou [[ ):

  • O arquivo -r existe e a permissão de leitura é concedida
  • O arquivo -w existe e a permissão de gravação é concedida
  • -x existe e a permissão de execução é concedida

Por exemplo:

[ -w file ] && echo foo >> file
    
por 11.02.2015 / 18:40
1

Como as "permissões" não cobrem apenas permissões de unix octal em sistemas Linux modernos, eu gostaria de elaborar um pouco:

Além de stat -c %a file @ vinc17 sugerido, há stat -c %C file para o contexto do SELinux no RHEL Systems e getfacl file para volumes usando ACLs.

namei -m /path/to/file pode ser útil para descobrir todas as permissões octal que levam ao caminho do arquivo, pois permissões erradas nos diretórios pai podem inibir o acesso.

    
por 11.02.2015 / 18:27