Empty whoami em subshell

1

Eu tenho um webapp (nginx, gunicorn, python) que recebe git post hooks e aciona uma ferramenta de linha de comando (ruby, capistrano). Tudo é executado por meio de um usuário chamado deployer . A ferramenta de linha de comando funciona muito bem e pode se conectar via ssh a servidores remotos.

Quando o webapp aciona, ele não pode se conectar via ssh. Uma senha é necessária. Eu acho que sei como contornar isso (eu tive um problema semelhante com o cronjobs aqui: O servidor é eliminado devido ao número crescente de processos do ssh-agent ), mas de alguma forma o usuário está vazio no webabb.

Dado este script:

#!/bin/bash
echo "$(whoami)"

Quando executo deployer@tools:/srv/deployment$ ./test > test.txt , test.txt contém "implantador" e o arquivo test.txt é de propriedade de deployer: deployer.

Quando eu executo o mesmo comando de dentro do meu webapp, o test.txt está vazio (contendo apenas uma quebra de linha), mas de propriedade do implementador: www-data (como esperado e configurado no gunicorn).

Como isso é possível e o que posso fazer sobre isso?

    
por shredding 11.10.2015 / 16:15

1 resposta

1

Então, o problema acabou sendo uma configuração de caminho diferente.

Gunicorn estava usando o python virtualenv como PATH e, portanto, não conhecia whoami. Empurrando no caminho absoluto funcionou!

    
por shredding 11.10.2015 / 16:47