Данные пользователя AWS EC2: команды, не распознаваемые при использовании sudo - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь создать скрипт пользовательских данных EC2 для запуска других скриптов при загрузке. Однако запускаемые мной сценарии не распознают некоторые команды и переменные, которые я уже объявил. Я запускаю команды как пользователь "ubuntu", но он все еще не работает.

Мой скрипт пользовательских данных выглядит примерно так:

export user="ubuntu"
sudo su $user -c ". ./run_script"

Внутри скрипта у меня есть следующие строки:

THIS_PATH="/some/path"
echo "export SOME_PATH=$THIS_PATH" >> ~/.bashrc

source ~/.bashrc

Однако скрипт не может запустить SOME_PATH/application, и echo $SOME_PATH возвращает пустую строку. Я запутался, потому что $SOME_PATH/application работает, когда я захожу в EC2 с использованием SSH, а мои журналы отладки с использованием whoami возвращают "ubuntu".

Я что-то здесь упускаю?

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Я обнаружил проблему. Кажется, что source ~ / .bashrc недостаточно для перезапуска оболочки - переменные окружения работали после того, как я ссылался на них в другом скрипте bash.

0 голосов
/ 04 июля 2019

Ваш скрипт данных выполняется как root, а команда su оставляет $ HOME и другие переменные ENV без изменений (обратите внимание, что sudo является избыточным). «su -» тоже не помогает

Итак, не используйте ~ или $ HOME, а полный путь /home/ubuntu/.bashrc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...