Execute comandos como outro usuário

Execute comandos como outro usuário

Criei um usuário chamado intelmqque possui permissões para executar um programa chamado intelmqctl. Então criei um usuário chamado apachee gostaria apachede executar intelmqctlcomo usuário intelmq. Adicionei as seguintes linhas ao sudoersarquivo:

Defaults:apache !requiretty
apache ALL=(intelmq) NOPASSWD: /usr/bin/intelmqctl

No entanto, sempre que tento executar o seguinte comando como usuário, apacheele retorna isto:

comando:sudo -u apache sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser

saída:

Sorry, user apache is not allowed to execute '/bin/sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser' as apache on localhost.localdomain.

Estou usando um CentOS 7.

Aqui estão os passos que fiz para instalar intelmqctle o problema em si explicado melhor, talvez tenha falhado alguma coisa durante a instalação:https://github.com/certtools/intelmq/issues/981

Se eu tentar executar sudo -iu apachecomo root, ele mudará para o apacheusuário, então se eu executar o comando sudo -u intelmq /usr/bin/intelmqctl, ele funciona, mostra todas as opções para executar intelmqctl.

No entanto, se eu executar o comando sudo -iu apachecomo apacheusuário, ele retornará:Sorry, user apache is not allowed to execute '/bin/bash' as apache on localhost.localdomain.

Responder1

Você pode adicionar permissão setuid a esse binário e alterar a propriedade para intelmq.

chmod u+s /usr/bin/intelmqctl
chown intelmq /usr/bin/intelmqctl

Então você pode executar este executável com a propriedade do processo intelmq.

informação relacionada