Composer под root: опасности, ограничения и безопасные альтернативы
Composer в Docker: особенности работы от root и настройка окружения

Composer и права root: как избежать ошибок и безопасно работать в контейнерах



Почему я вижу предупреждение/ошибку «Не запускайте Composer от имени root/super user»?

Не рекомендуется запускать Composer от имени root по причинам, описанным ниже.

Начиная с Composer 2.4.2, плагины отключаются автоматически при запуске от имени root, и нет никаких признаков того, что пользователь делает это сознательно. Согласие пользователя может быть дано двумя способами:

При выполнении интерактивной работы Composer спросит, уверены ли вы, что хотите продолжить работу от имени root. При отсутствии интерактивного запуска плагины будут отключены, если только...
Если вы установили переменную окружения COMPOSER_ALLOW_SUPERUSER в 1, это также указывает на то, что вы собираетесь запускать Composer от имени root и принимаете на себя все риски, связанные с этим.

Безопасно ли запускать Composer от имени superuser или root?

Некоторые команды Composer, включая exec, install и update, позволяют стороннему коду выполняться в вашей системе. Это происходит благодаря функциям «plugins» и «scripts». Плагины и скрипты имеют полный доступ к учетной записи пользователя, под которой запущен Composer. По этой причине настоятельно рекомендуется избегать запуска Composer от имени super-user/root. Все команды также отправляют события, которые могут быть перехвачены плагинами, поэтому, если установленные плагины не отключены явно, они будут загружаться/выполняться каждой командой Composer.

С помощью следующего синтаксиса можно отключить плагины и скрипты во время установки или обновления пакета, чтобы выполнялся только код Composer, а не код сторонних разработчиков:

php composer.phar install --no-plugins --no-scripts ...
php composer.phar update --no-plugins --no-scripts ...

В зависимости от операционной системы известны случаи, когда можно было инициировать выполнение файлов в репозитории с помощью специально созданного composer.json. Поэтому в целом, если вы хотите установить ненадежные зависимости, вам следует полностью поместить их в контейнер или его аналог.

Также обратите внимание, что команда exec всегда будет запускать сторонний код от имени пользователя, под которым запущен composer.

Дополнительную информацию о том, как отключить предупреждения, см. в переменной окружения COMPOSER_ALLOW_SUPERUSER.

Запуск Composer внутри контейнеров Docker/Podman

Composer делает все возможное, чтобы определить, что он работает внутри контейнера, и если это так, то он разрешит запуск от имени root без каких-либо дальнейших проблем. Однако если это определение не удается, вы увидите предупреждения, а плагины будут отключены, если вы не установите переменную окружения COMPOSER_ALLOW_SUPERUSER.

Перевод с английского:
getcomposer.org

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню