【问题标题】:What are the risks of Composer running as root ?Composer 以 root 身份运行有什么风险?
【发布时间】:2019-04-01 20:38:34
【问题描述】:

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

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

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

假设我以非 root 用户身份运行,但我必须将该用户提供给 rwxtest 目录,这样每当我运行 composer install 它就可以创建供应商 composer.lock并阅读脚本并在测试目录中执行它。 但是一旦你给了 rwx,它就可以在其中创建任何恶意脚本,或者可以访问我的 env 文件。那么,以 root 或非 root 身份运行有什么关系呢?

【问题讨论】:

    标签: composer-php webserver file-permissions


    【解决方案1】:

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

    所以 webroot 应该归 PHP-FPM 所有者所有,以使网站正常运行,其中 composer.json、供应商等应该归 PHP-CLI 所有者所有。两个用户应该不同。事实上测试目录应该是 PHP-CLI 所有者可写的,PHP-FPM 进程所有者不可写。通常 PHP-FPM 作为所有者 www-data 运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2013-12-19
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多