Пустой whoami в подоболочке

У меня есть веб-приложение (nginx, gunicorn, Python), который получает сообщение мерзавца, сцепляет и инициировал инструмент командной строки (рубин, capistrano). Все выполняется через названного пользователя deployer. Инструмент командной строки работает очень хорошо и может соединиться через ssh с удаленными серверами.

Когда веб-приложение инициировало его, это не может соединиться через ssh. Пароль требуется. Я думаю, что знаю, как обойти его (у меня была подобная проблема с cronjobs здесь: Сервер уничтожается из-за растущего числа процессов ssh-агента), но так или иначе пользователь пуст в webabb.

Учитывая этот сценарий:

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

Когда я работаю deployer@tools:/srv/deployment$ ./test > test.txt затем test.txt содержит "устройство развертывания" и файл test.txt принадлежит deployer:deployer.

Когда я выполняю ту же самую команду из своего веб-приложения затем, test.txt пуст (только содержащий разрыв строки), но принадлежавший deployer:www-данным (как ожидалось и настроенный в gunicorn).

Как это даже возможно и что я могу сделать об этом?

1
задан 13 April 2017 в 15:23

1 ответ

Таким образом, проблема оказалась другим урегулированием пути.

Гуникорн использовал питона virtualenv в качестве ПУТИ и поэтому не знал whoami вообще. Подталкивание в абсолютном пути работало!

1
ответ дан 7 December 2019 в 16:08

Другие вопросы по тегам:

Похожие вопросы: