Sua pergunta é difícil de responder precisamente porque você não disse qual caminho está passando para o daemon e não especificou as permissões de ~agent . Se você iniciar o daemon no diretório ~agent/incoming e passar caminhos relativos, então, como o daemon está no grupo automaton , ele poderá ler, gravar e excluir os arquivos no diretório ~agent/incoming .
Eu acho que o que está acontecendo é:
- O diretório
~agentnão é executável para o daemon. - O caminho passado para o daemon inclui
~agentcomo um componente (digamos, é um caminho absoluto).
Quando um processo acessa /home/agent/incoming/foo , ele deve ter permissões de execução em todos os diretórios que são atravessados: / , /home , /home/agent e /home/agent/incoming (mais, se alguns deles forem links simbólicos).
Se o daemon acessar foo enquanto seu diretório atual for ~agent/incoming , ele só precisará ter permissões de execução no próprio diretório ( ~agent/incoming ). Você precisa conseguir tornar esse diretório atualizado; chdir requer que o processo tenha acesso ao diretório de destino. Isso é possível se você mudar primeiro para o diretório desejado durante a execução como (digamos) o usuário agent , então execute algo como su daemon -c daemon-command .