Até onde eu entendi:
Quando você inicia o script a partir da pasta stats, um processo desse script é iniciado. Este processo na maioria dos casos tem o id de usuário e id de grupo do usuário que o iniciou (a menos que suid ou sgid bits no arquivo executável estejam configurados, então ele terá id de usuário e / ou id de grupo do usuário / grupo de arquivos de script) . Você pode digitar "id" para ver com que usuário e grupo você iniciou o script.
É o processo que tenta acessar o arquivo de / home / agent / google. para acessar o arquivo em / home / agent / google, o processo tem que ser capaz 1) para 'executar' o diretório, 2) para ler o arquivo particular deste diretório.
Para o diretório, supondo que o processo seja executado com userId e groupId diferente de agent, você precisa de um diretório para ser legível e executável em todo o mundo (se não, você pode fazer chmod +0005 / home / agent / google).
Para o arquivo, para poder lê-lo, você precisa garantir uma das seguintes opções:
- userId (processo) é 0 (raiz) (você pode executar seu script como um superusuário, mas geralmente é uma prática ruim)
- userId (processo) == ownerId (arquivo) E o arquivo tem permissões de leitura para o proprietário. 'chmod u + r file'
- groupId (processo) == groupID (arquivo) E o arquivo tem permissões de leitura para o grupo. (você pode configurá-lo com 'chmod g + r file' O arquivo
- tem permissões de leitura para o mundo. (você pode configurá-lo com o arquivo chmod o + r)
Isso ajuda?