is_readable /path/to/file
é escrito test -r /path/to/file
ou [ -r /path/to/file ]
ou [[ -r /path/to/file ]]
. Veja usando um ou dois colchetes - bash para diferenciar. is_writable
usa -w
.
Não conseguir acessar um arquivo não é um bom indicador de "precisar de sudo". Pode ser que você execute como um usuário ou grupo diferente, não como root. Pode ser que em um determinado sistema, a maneira de obter acesso root não seja executar sudo
, mas algum outro mecanismo ( su
, calife
,…). Testar o acesso a um arquivo é bom em um sistema conhecido com uma configuração conhecida. Se você distribuir scripts que fazem isso, lembre-se de que isso é apenas um teste heurístico, não um teste confiável, e deixe o usuário facilmente anular suas decisões.
Note que só porque um arquivo testado como legível não significa que você realmente será capaz de lê-lo. As permissões no arquivo podem ter mudado nesse meio tempo. Às vezes, há discrepâncias entre o que as permissões de arquivo dizem e o que as verificações de acesso realmente fazem: sistemas de arquivos remotos com atributos sofisticados que o sistema de arquivos local não entende, estruturas de segurança como o SELinux, etc.