No que diz respeito ao kernel, um processo é executado como um usuário¹ e um ou mais grupos. Depois que o processo é iniciado, ele não adquirirá mais grupos. Um processo herda seu usuário e grupo (s) do processo que o chama.
A noção de um usuário pertencente a um grupo é gerenciada por ferramentas de administração de usuários e é o programa de login que concede associações ao grupo ao processo iniciado. Assim, quando você adiciona um usuário a um grupo, isso só entra em vigor em sessões de login iniciadas posteriormente, não em sessões já em andamento.
Os daemons não passam por um processo de login interativo e geralmente são iniciados como um usuário e grupo específicos. Geralmente, o grupo nem é lido no banco de dados de contas, mas codificado no script de inicialização do daemon ao lado do nome de usuário. Portanto, adicionar o usuário logstash
ao grupo adm
não ajudará você; O que você precisa fazer é alterar o script de inicialização do logstash para executar o logstash com adm
como um grupo adicional. Como isso depende de como o script de inicialização é escrito. Em qualquer caso, isso exigirá o reinício do serviço logstash.
Como alternativa, você pode alterar a lista de controle de acesso do arquivo de log para permitir que o processo de logstash o use. Por exemplo, para permitir que o usuário logstash
leia o arquivo de log kannel:
setfacl -m u:logstash:r /var/log/kannel/smsbox.log
e talvez também
setfacl -m u:logstash:rx /var/log/kannel
Observe que isso pode ser apenas uma solução temporária, pois a rotação do log pode reinicializar suas permissões. Para essa abordagem, você provavelmente precisará alterar a configuração do programa que (re) cria o arquivo de log.
¹ Dois usuários (real e efetivo), mas o UID real não é relevante nesta resposta.