Каковы риски запуска Composer от имени root? - PullRequest
0 голосов
/ 29 октября 2018

Я не понимаю разницу между composer, работающим от имени пользователя root и не-root.Независимо от того, с каким пользователем вы работаете, вы должны предоставить доступ на запись к основному каталогу, где composer хранит свои активы, такие как vendor, scripts, composer.json и composer.lock.

Например, в моем случае мои структуры dirкак показано ниже: -

.test
|-scripts
|-composer.json
|-scripts
|-webroot
|-.env

Скажите, что я работаю как пользователь без полномочий root, но я должен предоставить этому пользователю rwx to test dir, чтобы при каждом запуске ComoSoserустановить его можно создать vendor, composer.lock и прочитать сценарии и выполнить его внутри test dir.Но как только вы дадите rwx, он может создать внутри себя любой вредоносный скрипт или получить доступ к моему env-файлу.Так как же это важно, если вы работаете как root или не-root?

1 Ответ

0 голосов
/ 29 октября 2018

Потратив немного больше времени, я узнал, что, поскольку composer - это скрипт cli, он использует PHP-CLI, а не интерпретатор PHP-FPM.PHP-CLI и PHP-FPM - это разные вещи.Веб-сервер взаимодействует с PHP-FPM, а не с PHP-CLI.Поэтому всякий раз, когда мы вызываем composer, процесс composer принадлежит владельцу PHP-CLI.

Таким образом, webroot должен принадлежать владельцу PHP-FPM, чтобы веб-сайт работал, а composer.json, поставщики и т. Д. Должны принадлежать владельцу PHP-CLI.Оба пользователя должны быть разными.Intif test dir должен быть доступен для записи владельцем PHP-CLI, а не для записи владельцем процесса PHP-FPM.Часто PHP-FPM запускается как владелец www-data

...