以root身份运行Composer有哪些风险?

时间:2018-10-28 22:23:59

标签: composer-php webserver file-permissions

我不了解以root用户和非root用户运行的作曲家之间的区别。无论以哪种用户身份运行,都必须授予对composer存储其资产(例如供应商,脚本,composer.json和composer.lock)资产的主目录的写访问权。

例如,我的目录结构如下:-

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

说我以非root用户身份运行,但是我必须将该用户授予rwx进行 test 目录,以便每当我运行composer install时,它都可以创建供应商composer .lock并读取脚本并在测试目录中执行它。 但是一旦给了rwx,它就可以在其中创建任何恶意脚本,或者可以访问我的env文件。那么,以root或非root身份运行又有什么关系呢?

1 个答案:

答案 0 :(得分:-1)

花了更多时间后,我知道作为作曲家是一个cli脚本,它使用PHP-CLI而不是PHP-FPM解释器。 PHP-CLI和PHP-FPM都是不同的东西。 Web服务器与PHP-FPM对话,而不与PHP-CLI对话。因此,每当我们调用composer时,PHP-CLI所有者便拥有composer进程。

因此,webroot应该由PHP-FPM所有者拥有,以使网站正常工作,而composer.json,供应商等应由PHP-CLI所有者拥有。两个用户应该不同。实际测试目录应由PHP-CLI所有者写,而不能由PHP-FPM进程所有者写。 PHP-FPM通常以所有者www-data的身份运行