#bash #amazon-web-services #command-line-interface
Вопрос:
Я запускаю bash
скрипт с sudo
помощью и попробовал ниже, но получаю ошибку ниже с помощью aws cp
. Я думаю, проблема в том, что скрипт ищет config
то, в /root
чем его нет. Однако разве это не -E
сохраняет исходное местоположение? Есть ли опция, с помощью которой можно aws cp
передать местоположение config
. Спасибо вам :).
sudo -E bash /path/to/.sh
- inside of this script is `aws cp`
Ошибка
The config profile (name) could not be found
I have also tried `export` the name profile and `source` the path to the `config`
Комментарии:
1. Вы пробовали поместить все в один и тот же каталог(скрипт,файл для копирования и т.д.)?
2. Таким образом, скрипт вызывается из одного каталога…. создает кучу новых каталогов и копирует все новые каталоги в
aws
. Если я не используюsudo
aws cp
это нормально и не возвращает ошибок…. проблема в том, что мне нужноsudo
создать новые каталоги. Исходныйconfig
файл в$HOME/user/aws
. Спасибо вам :).3. Находятся ли новые каталоги в защищенном пути? В этом случае вы не можете добавить пользователя в ту же группу?
4. каталоги находятся в защищенном пути, и я не думаю, что можно добавить пользователя в ту же группу, но я проверю. Кроме этого, есть ли другие варианты? Может быть , я мог
export HOME=/root
бы и скопировать$HOME/user/.aws
в/root/.aws
, так что есть два каталога с учетными данными. Я не думаю, что это вызовет проблемы? Спасибо вам :).5. Да, вы также можете это сделать или просто создать символическую ссылку из /root/.aws в /home/user/.aws
Ответ №1:
Вы можете использовать оригинального пользователя, как :
sudo -u $SUDO_USER aws cp ...
Ответ №2:
Вы также можете запустить скрипт, используя source
вместо bash
— использование source
приведет к запуску скрипта в той же оболочке, что и ваше открытое окно терминала, в котором будет сохранен один и тот же env (например, пользователь) — хотя, честно говоря, ответ @Philippe лучше, более правильный.