Я сталкиваюсь с проблемой при установке dotnet sdk на сервер развертывания во время развертывания с использованием сценариев оболочки. Шаги, которые я выполнил:
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
Я знаю, что у меня нет привилегий root, поэтому я не могу sudo
ввести команду в сценарии buildpack. Пожалуйста, дайте мне знать, как достичь этого другими способами. Быстрый ответ будет оценен.
sudo требуется, если Вы хотите использовать способную упаковочную систему, нет никакого окольного пути этого. Только необходимо быть в sudoers группе, чтобы иметь полномочия пользователя root через sudo на настройках по умолчанию.
А частичное обходное решение должно было бы настроить sudo для разрешения, Вы к sudo для просто Кв. - получаете команду, но это небезопасно и не может полностью работать.
Вы могли попросить учетную запись использоваться только для установки, это не будет затем использоваться для рабочих сервисов или сценариев, это незначительно менее опасно для администратора, но могло быть защищено в большей степени из-за ее особого внимания.
Это самое простое обходное решение здесь должно использовать докера или виртуальную машину (предполагающий, что ее подсистема уже установлена, поскольку это потребует sudo) создать часть, которую можно администрировать без корня. Существует руководство здесь для докера - https://www.microsoft.com/net/core#docker
В конечном счете, Вы будете изо всех сил пытаться сделать эту работу без корня поэтому просто пойти, получают корень или получают другое поле.
А фундаментальное правило в мире Unix состоит в том, что необходимо работать как корень для обслуживания данных по порту, пронумерованному меньше чем 1 024, это будет препятствовать тому, чтобы Вы служили на большинстве стандартных портов.