Estou tentando usar o comando sudo e o arquivo sudoers corretamente para poder executar um comando como outro usuário.
Eu tenho meu arquivo sudoers configurado da seguinte maneira:
beans ALL = (root,apache) NOPASSWD: /opt/renovations/var/script-*.sh
root, apache e beans fazem parte do grupo de beans.
O / opt também possui 755 permissões, enquanto o diretório / opt / renovations e seus subdiretórios são de propriedade do usuário e do grupo de beans.
O comando que estou tentando executar como beans é:
sudo -n -u apache -i /opt/renovations/var/script-test.sh
-n: é para que não seja solicitada uma senha, pois isso será executado por um cron
-u: é para que eu possa representar o usuário apache
-i: é para simular um login e meu .profile está carregado. Eu preciso disso para acessar as variáveis de ambiente em .profile.
O problema é que, quando executo o comando sudo, recebo a seguinte mensagem:
sudo: desculpe, é necessária uma senha para executar o sudo
Eu tentei executar isso no AIX e no Ubuntu, mas o problema está nos dois sistemas. Isso funciona se eu executar:
sudo -n -u apache /opt/renovations/var/script-test.sh
Mas sem o -i, meu ambiente não contém todas as variáveis de ambiente que eu preciso estar lá.
Há algo que eu precise atualizar no meu arquivo sudoers para que isso seja possível?
beans ALL = (root,apache) NOPASSWD: /usr/bin/ksh -c /opt/renovations/var/script-*.sh
e beans ALL = (root,apache) NOPASSWD: /usr/bin/bash -c /opt/renovations/var/script-*.sh
Mas agora eu obter o novo erro, por exemplo:ksh: /opt/renovations/var/script-test.sh: cannot execute
visudo -c
retorna (verifica se há erros nos sudoers). Além disso, você pode confirmar a versão completa do AIX (oslevel -s
) e a versão do sudo instalada?