Se eu tenho um diretório no qual o usuário tem permissão de leitura, por que não é possível verificar se existe um arquivo nesse diretório. Por exemplo, digamos que eu tenha a pasta /myfolder com permissão de leitura. Essa pasta contém algum arquivo 'garbage.txt' com permissão de leitura (para o usuário). Quando tento usar stat /myfolder/garbage.txt recebo um erro de permissão negada. Se eu adicionar permissões de execução para /myfolder, poderei verificar se o trash.txt existe.
Por que preciso de permissões de execução para verificar se existe um arquivo em uma pasta. Eu esperava que as permissões de leitura no diretório/pasta fossem suficientes.
Responder1
Nas pastas do Linux, as permissões são:
O bit de gravação permite que o usuário afetado crie, renomeie ou exclua arquivos do diretório e modifique os atributos do diretório
O bit de leitura permite que o usuário afetado liste os arquivos dentro do diretório
O bit de execução permite que o usuário afetado entre no diretório e acesse arquivos e diretórios dentro dele.
O sticky bit afirma que os arquivos e diretórios dentro desse diretório só podem ser excluídos ou renomeados por seu proprietário (ou root)
Mais informações:
Responder2
As permissões de execução em um diretório permitem que você atravesse esse diretório. E você precisa ser capaz de acessar o diretório para usar stat nesse arquivo.
Veja tambémhttps://stackoverflow.com/questions/790686/understanding-linux-directory-permissions-reasoning