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
~agent
não é executável para o daemon. - O caminho passado para o daemon inclui
~agent
como 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
.